美文网首页
2020-12-17 es6 class 属性归属的疑惑

2020-12-17 es6 class 属性归属的疑惑

作者: 是嘤嘤嘤呀 | 来源:发表于2020-12-17 18:11 被阅读0次

看到阮一峰的es6入门里,针对class有一句话:与 ES5 一样,实例的属性除非显式定义在其本身(即定义在this对象上),否则都是定义在原型上(即定义在class上)。我测试了一下似乎并非如此

class Event {
      list = []
      test = function () {
        console.log(this)
      }
}

很明显:list 和 test 都是定义在实例上,并非原型上的

class Event {
      list = []
      test () {
        console.log(this)
      }
 }

这样才是定义在prototype上
我的理解如果是表达式形式,都是定义在实例上的,函数形式都是定义在原型上的。
这句话确实以及给出的例子都会让人误解,以为是只有

class Event {
     constructor() {
         this.list = [];
         this.test = function(params) {
             console.log(this)
         }
     }
}

这样的形式才是定义在实例上的。
事实上第一种方式和第三种方式是完全等价的。
获取还有其他的解释,欢迎大家和我讨论。

相关文章

  • 2020-12-17 es6 class 属性归属的疑惑

    看到阮一峰的es6入门里,针对class有一句话:与 ES5 一样,实例的属性除非显式定义在其本身(即定义在thi...

  • es6 class实现静态属性、私有属性、方法

    1.class实现静态属性 参考:ES6 class 静态属性和私有方法 es6中实现了静态方法,但是没有静态属性...

  • 继承的写法

    new 之后 发生了3件事情!!! // // // ES6 的 class 写法,共有属性 只 支持函数 代码 ...

  • Class语法

    ES6前 类的实例 getter和setter 属性表达式 Class表达式 注意点 静态方法 实例属性新写法 静...

  • javascript中的class

    ES5 定义构造函数 通过构造函数加属性,通过原型加方法: ES6 Class语法 class 实际上是语法糖,编...

  • 用Decorator优化React

    什么是decorator decorator是ES6的一个新特性,可以修改class的属性 通过decorator...

  • java反射

    看了张明云的博客,稍微总结一下,例子还是用他的 方法、属性的归属问题,属于Class的就传Class的实例,属于类...

  • JavaScript ES6 类的静态方法、属性和实例方法、属性

    类相当于实例的原型,ES6类的声明中可以定义实例方法、实例属性和静态方法。 ES6 明确规定, Class 内部只...

  • ES6 class与继承

    class是什么 class是定义类的方法。ES6之前用构造函数的方式定义类,ES6引入了class。 class...

  • JS 中继承的写法

    es5: es6: class 在原型上声明一个不是函数的属性:es5:Human.prototype.race ...

网友评论

      本文标题:2020-12-17 es6 class 属性归属的疑惑

      本文链接:https://www.haomeiwen.com/subject/sxgzgktx.html