小编Eva*_*hen的帖子

ES6 类私有属性只是语法糖吗?

使用 # 语法,我们现在可以在 ES6 类中创建私有属性,如下所示:

class Person {
    #name;
    constructor(name) {
        this.#name = name;
    }
    getName() { return this.#name; }
}

let ron = new Person('ron')
ron.#name // undefined
ron.getName(); // ron
Run Code Online (Sandbox Code Playgroud)

以前,在 ES5 中,私有属性很难通过以下方式“伪造”:

function Person(name) {
  var name = name;
  this.getName = function() {
    return name;
  }
}
(new Person('ron')).name // undefined
(new Person('ron')).getName() // ron
Run Code Online (Sandbox Code Playgroud)

上面的版本使用了“var”不属于 Person 实例的“this”这一事实。因此,使用“闭包”getName 的力量可以访问“名称”。然而,这样做的问题是 this.getName() 不是原型链的一部分,因此为了将 getName 添加到原型中,我们必须这样做:

Person.prototype.getName = function() { return this.getName(); }
Run Code Online (Sandbox Code Playgroud)

这很令人困惑,而且味道很难闻。

另一种选择是:(使用 ES6 …

javascript ecmascript-6 es6-class

6
推荐指数
1
解决办法
2018
查看次数

在 Material-ui-pickers 2.2.4 中将日期图标对齐方式从右(默认)更改为左

我正在使用 Material-ui-pickers 2.2.4 Datepicker 组件。但是,我希望将日期图标放置在左侧而不是右侧(默认)。有什么帮助吗?

尝试了自定义CSS,用CSS包装组件,所有这些黑客方法都失败了。

                <MuiPickersUtilsProvider utils={MomentUtils}>
                    <DatePicker 
                        readOnly
                        ref='datepicker'
                        labelFunc={this.formatWeekSelectLabel}
                        // value=""
                        onChange={this.handleDateChange}
                        animateYearScrolling
                        InputProps={{
                            disableUnderline: true,
                        }}      
                    />
                </MuiPickersUtilsProvider>
            </MuiThemeProvider>```
Run Code Online (Sandbox Code Playgroud)

material-ui

3
推荐指数
1
解决办法
3873
查看次数

标签 统计

ecmascript-6 ×1

es6-class ×1

javascript ×1

material-ui ×1