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

备案的网站程序上传列举网络推广的方式

备案的网站程序上传,列举网络推广的方式,阿里云网站建设部署与发布,白云商城型网站建设大多数浏览器的 ES5 实现之中,每一个对象都有__proto__属性,指向对应的构造函数的prototype属性。Class 作为构造函数的语法糖,同时有prototype属性和__proto__属性,因此同时存在两条继承链。 构造函数的子类有prototype属性。‌ …

大多数浏览器的 ES5 实现之中,每一个对象都有__proto__属性,指向对应的构造函数的prototype属性。Class 作为构造函数的语法糖,同时有prototype属性和__proto__属性,因此同时存在两条继承链。

构造函数的有prototype属性‌ 子类通过继承机制继承了父类的属性,包括prototype属性。子类的prototype属性不仅存在,而且其__proto__属性指向父类,而子类prototype属性的__proto__属性指向父类的prototype属性‌。

在JavaScript中,构造函数用于创建对象,其子类通过继承父类的属性和方法来实现功能的扩展。子类的prototype属性允许子类实例共享方法和属性,这与父类的prototype属性相关联,形成了原型链‌。

具体来说,当创建一个子类的实例时,该实例的原型(proto)指向父类,而子类prototype属性的__proto__则指向父类的prototype。这样,子类实例可以通过原型链访问父类的方法和属性,实现方法的共享和继承‌。

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

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

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

上面代码中,子类B__proto__属性指向父类A,子类Bprototype属性的__proto__属性指向父类Aprototype属性。

这样的结果是因为,类的继承是按照下面的模式实现的。

class A {
}class B {
}// B 的实例继承 A 的实例
Object.setPrototypeOf(B.prototype, A.prototype);// B 继承 A 的静态属性
Object.setPrototypeOf(B, A);const b = new B();

《对象的扩展》一章给出过 Object.setPrototypeOf()方法的实现。 

Object.setPrototypeOf = function (obj, proto) {obj.__proto__ = proto;return obj;
}

 因此,就得到了上面的结果,即:

Object.setPrototypeOf(B.prototype, A.prototype);
// 等同于
B.prototype.__proto__ = A.prototype;Object.setPrototypeOf(B, A);
// 等同于
B.__proto__ = A;

这两条继承链,可以这样理解:

作为一个对象,子类(B)的原型(__proto__属性)是父类(A);

作为一个构造函数,子类(B)的原型对象(prototype属性)是父类的原型对象(prototype属性)的实例。

B.prototype = Object.create(A.prototype);
// 等同于
B.prototype.__proto__ = A.prototype;

extends关键字后面可以跟多种类型的值。

class B extends A {
}

上面代码的A,只要是一个有prototype属性的函数,就能被B继承。由于函数都有prototype属性(除了Function.prototype函数),因此A可以是任意函数。

下面,讨论两种情况。第一种,子类继承Object类。

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

这种情况下,A其实就是构造函数Object的复制,A的实例就是Object的实例。

第二种情况,不存在任何继承。

class A {
}A.__proto__ === Function.prototype // true
A.prototype.__proto__ === Object.prototype // true

这种情况下,A作为一个基类(即不存在任何继承),就是一个普通函数,所以直接继承Function.prototype。但是,A调用后返回一个空对象(即Object实例),所以A.prototype.__proto__指向构造函数(Object)的prototype属性。

实例的 __proto__ 属性 

子类实例的__proto__属性的__proto__属性,指向父类实例的__proto__属性。也就是说,子类的原型的原型,是父类的原型。

var p1 = new Point(2, 3);
var p2 = new ColorPoint(2, 3, 'red');p2.__proto__ === p1.__proto__ // false
p2.__proto__.__proto__ === p1.__proto__ // true

上面代码中,ColorPoint继承了Point,导致前者原型的原型是后者的原型。因此,通过子类实例的__proto__.__proto__属性,可以修改父类实例的行为。

p2.__proto__.__proto__.printName = function () {console.log('Ha');
};p1.printName() // "Ha"

上面代码在ColorPoint的实例p2上向Point类添加方法,结果影响到了Point的实例p1


参考资料:

详解JS原型,构造函数以及class之间的原型关系-腾讯云开发者社区-腾讯云

http://www.15wanjia.com/news/170714.html

相关文章:

  • 晋城市网站建设管理人员asp网站可以做移动端网站么
  • 微信网站开发详解东莞中小型网站建设
  • 咸鱼网站交易付款怎么做网页游戏代码
  • 南京模板做网站河源市网站建设
  • 移动终端开发技术泰州seo管理
  • 度更新网站中核西北建设集团网站
  • 有域名 有固定ip怎么做网站wordpress修改插件
  • 上海网站设计首选刻dw做网站有雪花效果
  • 河北省保定市唐县城乡建设网站WordPress生成网站地图
  • 做网站备案是承诺书是啥餐饮营销方案
  • 青岛做网站建设的公司排名wordpress 数据库结构
  • 网站抓取诊断ip出错怎么做二维码进网站
  • 有哪些线上做酒店的网站怎么建一个免费的网站
  • 余姚网站建设维护seo 培训教程
  • 网站更改备案信息在哪c 做视频网站
  • 适合html初学者做的网站网站建设通俗讲
  • 那个网站有帮人做图的关于网站开发的自我评价
  • 网站是哪家公司做的中国网站制作公司排名
  • 国内站长做国外网站网站制作有前途吗
  • 手机开网站国内永久crm
  • 分类信息网站建设方案网站开发实用技术第2版文档
  • 荆州网站建设费用学习网站二次开发
  • 网站后台登陆图片软件定制公司设计方案
  • 网站的收费窗口怎么做做业务的网站
  • 中山网站建设文化市场网站开发+百度编辑器
  • 哪个网络公司做网站好点春节网页设计素材
  • 电脑上制作网站的软件wordpress主题模板开发
  • 正规招聘网站有哪些广州企业所得税
  • 秀山网站建中华室内设计网节点图
  • 临海建设银行网站网站移动端自适应