码迷,mamicode.com
首页 > 其他好文 > 详细

class -类的实例

时间:2020-03-25 16:21:05      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:str   highlight   property   使用   生成   变量   const   color   w命令   

生成类的实例的写法,与 ES5 完全一样,也是使用new命令。
如果忘记加上new,像函数那样调用Class,将会报错。 class Point { // ... } // 报错 var point = Point(2, 3); // 正确 var point = new Point(2, 3);

  与 ES5 一样,实例的属性除非显式定义在其本身(即定义在this对象上),否则都是定义在原型上(即定义在class上)

//定义类
class Point {

  constructor(x, y) {
    this.x = x;
    this.y = y;
  }

  toString() {
    return ‘(‘ + this.x + ‘, ‘ + this.y + ‘)‘;
  }

}

var point = new Point(2, 3);

point.toString() // (2, 3)

point.hasOwnProperty(‘x‘) // true
point.hasOwnProperty(‘y‘) // true
point.hasOwnProperty(‘toString‘) // false
point.__proto__.hasOwnProperty(‘toString‘) // true
上面代码中,x和y都是实例对象point自身的属性(因为定义在this变量上),所以hasOwnProperty方法返回true,
而toString是原型对象的属性(因为定义在Point类上),所以hasOwnProperty方法返回false
这些都与 ES5 的行为保持一致。

  类的所有实例共享一个原型对象

var p1 = new Point(2,3);
var p2 = new Point(3,2);

p1.__proto__ === p2.__proto__
//true
p1p2都是Point的实例,它们的原型都是Point.prototype,所以__proto__属性是相等的。

 

 

class -类的实例

标签:str   highlight   property   使用   生成   变量   const   color   w命令   

原文地址:https://www.cnblogs.com/blogZhao/p/12566769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!