当前位置: 首页 > news >正文

网易云播放器做网站播放百度推广广告收费标准

网易云播放器做网站播放,百度推广广告收费标准,怎么做全息网站,做网站外链需要多少钱1、简介 类Class 可以通过extends关键字实现继承,让子类继承父类的属性和方法。extends 的写法比 ES5 的原型链继承,要清晰和方便很多。 class Foo {constructor(x, y) {this.x x;this.y y;console.log(父类构造函数)}toString() {return ( this.x …

1、简介

类Class 可以通过extends关键字实现继承,让子类继承父类的属性和方法。extends 的写法比 ES5 的原型链继承,要清晰和方便很多。

class Foo {constructor(x, y) {this.x = x;this.y = y;console.log('父类构造函数')}toString() {return '(' + this.x + ', ' + this.y + ')';}
}class Baroo extends Foo {constructor(x, y, color) {this.color = color; // ReferenceError  super(x, y)之后才能使用子类thissuper(x, y); // 调用父类的constructor(x, y) 目的是新建子类实例this.color = color;console.log(x,y,color)console.log('子类构造函数')}toString() {return this.color + ' ' + super.toString(); // 调用父类的toString()}
}let baroo = new Baroo(1,2,'#ffffff')  // 1,2,'#ffffff'
console.log(baroo)  //Baroo {x: 1, y: 2, color: '#ffffff'}
console.log(baroo.toString())  // #ffffff (1, 2)

上面示例中,constructor()方法和toString()方法内部,都出现了super关键字。super在这里表示父类的构造函数,用来新建一个父类的实例对象

ES6 规定,子类必须在constructor()方法中调用super(),否则就会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,添加子类自己的实例属性和方法。如果不调用super()方法,子类就得不到自己的this对象。

注意,这意味着新建子类实例时,父类的构造函数必定会先运行一次。

上面示例中,子类 Bar 新建实例时,会输出 "父类构造函数","子类构造函数"。原因就是子类构造函数调用super()时,会执行一次父类构造函数(并在调用super()后才能使用子类的this,否则会报错)

// 如果子类没有定义constructor()方法,这个方法会默认添加,并且里面会调用super()。
// 也就是说,不管有没有显式定义,任何一个子类都有constructor()方法。class ColorPoint extends Point {}// 等同于
class ColorPoint extends Point {constructor(...args) {super(...args);}
}

2、super关键字

super这个关键字,既可以当作函数使用,也可以当作对象使用。在这两种情况下,它的用法完全不同。

第一种情况,super作为函数调用时,代表父类的构造函数。ES6 要求,子类的构造函数必须执行一次super()函数。

class Foo {}class Boo extends Foo {constructor() {super();}
}//子类B的构造函数之中的super(),代表调用父类的构造函数。这是必须的,否则报错

注意,这里的super虽然代表了父类的构造函数,但是因为返回的是子类的this(即子类的实例对象),所以super内部的this代表子类的实例,而不是父类的实例,这里的super()相当于A.prototype.constructor.call(this)(在子类的this上运行父类的构造函数)。

class A {constructor() {console.log(new.target.name);}
}
class B extends A {constructor() {super();}
}
new A() // A
new B() // B

上面示例中,new.target指向当前正在执行的函数。可以看到,在super()执行时(new B()),它指向的是子类B的构造函数,而不是父类A的构造函数。

ES6 规定,在子类普通方法中通过super调用父类的方法时,方法内部的this指向当前的子类实例,也就是说,super()内部的this指向的是B。

3、类的prototype属性和__proto__属性

在之前ES5实现中,每个对象都有__proo__属性,指向对应的构造函数的prototype属性。

ES6中类Class 作为构造函数的语法糖,同时有prototype属性和__proto__属性,因此同时存在两条继承链。

(1)子类的__proto__属性,表示构造函数的继承,总是指向父类。

(2)子类prototype属性的__proto__属性,表示方法的继承,总是指向父类的prototype属性。

class A {}class B extends A {
}B.__proto__ === A // true
B.prototype.__proto__ === A.prototype // true

http://www.fp688.cn/news/153718.html

相关文章:

  • 宝鸡seo优化教程汕头seo推广外包
  • 餐饮加盟网站制作百度推广案例及效果
  • asp网站和php网站的区别企业站seo价格
  • 南宁企业自助建站友情链接是啥意思
  • 最火爆的国际贸易网站广州网络优化最早的公司
  • 做网站的空间是什么手机网站制作
  • 如何优化好一个网站企业邮箱网页版
  • 南宁营销型网站专家广州市人民政府新闻办公室
  • 查询网138网站域名浏览器直接进入网站的注意事项
  • flash网站首页成人电脑速成培训班
  • 视频网站开发源码外贸接单平台哪个最好
  • wordpress新主题tintseo网站是什么意思
  • 温岭网站制作seo职位要求
  • 影楼风网站seo哪里做的好
  • 优酷视频放到网站上怎么做微信加人推码35一单
  • 浅谈做网站的好处手机网站建设案例
  • 道滘镇网站仿做海口做网站的公司
  • wordpress是英文厦门seo收费
  • 网站建设开发感想杭州网站
  • 村政府可以做网站么如何开发一款app软件
  • 个人网站建设中代码下载如何创建一个属于自己的网站
  • 那些行业做网站优化的比较多seo工作内容有哪些
  • 摄影做网站手机卡顿优化软件
  • 张店低价网站建设百度收录刷排名
  • 个人网站的制作步骤深圳全网推广托管
  • 汕头网站快速排名李勇seo博客
  • 一家专门做衣服的网站百度竞价培训
  • 网站建设公司中企动力推荐店铺推广平台有哪些
  • 有效的网站建设公司如何让百度搜索到自己的网站
  • 网站搜索怎么做推广平台排行榜