My blog

notes

假设.container元素有三个子元素,想实现第一个元素在最左边,第二、三个元素在最右边,可以按照下面代码很容易实现:

.container {
  display: flex;
}

.first-child {
  margin-right: auto;
}

let user = {
  name: "John",
  surname: "Smith",

  set fullName(value) {
    [this.name, this.surname] = value.split(" ");
  },

  get fullName() {
    return `${this.name} ${this.surname}`;
  }
};

let admin = {
  __proto__: user,
  isAdmin: true
};

alert(admin.fullName); // John Smith (*)

首先,对象admin的原型通过__proto__被设置成对象user。

当访问admin.fullName时,由于admin对象上不存在fullName属性,于是沿着原型链向上查找,即user对象,在user对象上存在fullName属性,并且是访问器属性。

fullName的getter函数被调用,且调用期间,this指向admin对象,getter函数内访问了this.name 和this.surname,即admin.name和admin.surname,又由于admin对象不存在这两个属性,根据原型链的规则,又找到了user对象,user对象上存在name和surname属性,返回属性值。所以admin.fullName的结果是 John Smith.


https://www.zhihu.com/question/319494477

在webpack中配置babel-loader时,为什么要排除node_modules这个文件夹呢? 这个文件夹里js模块万一也有类似箭头函数的ES6语法呢?