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

自己做签名网站施工企业安全生产评价汇总表最终须由( )签名。

自己做签名网站,施工企业安全生产评价汇总表最终须由( )签名。,动易网站制作教程,旅游网页设计模板源代码一、原型链的概念 原型链是JavaScript实现继承和属性共享的核心机制。每个对象都有一个内部属性[[Prototype]](可通过proto访问),指向其原型对象。当访问对象的属性时,若对象自身不存在该属性,则会沿着原型链向上查找…
一、原型链的概念

原型链是JavaScript实现继承和属性共享的核心机制。每个对象都有一个内部属性[[Prototype]](可通过proto访问),指向其原型对象。当访问对象的属性时,若对象自身不存在该属性,则会沿着原型链向上查找,直到找到或到达链的顶端(null)。

示例结构:​

function Person(name) {this.name = name;
}
Person.prototype.sayName = function() {console.log(this.name);
};
const person = new Person("Alice");
  • 构造函数​:Person是一个构造函数,其prototype属性指向原型对象。

  • 原型对象​:Person.prototype包含sayName方法,且constructor指回Person

  • 实例对象​:personproto指向Person.prototype,形成链式关系。

二、原型链的继承机制
  1. 原型继承​:
function Parent() {this.parentProp = "Parent";
}
Parent.prototype.parentMethod = function() { /* ... */ };
function Child() {Parent.call(this); // 继承实例属性this.childProp = "Child";
}
Child.prototype = Object.create(Parent.prototype); // 继承原型方法
Child.prototype.constructor = Child; // 修复构造函数指向
  1. ES6的class语法​(基于原型链):
class Parent {constructor() {this.parentProp = "Parent";}parentMethod() { /* ... */ }
}
class Child extends Parent {constructor() {super(); // 调用父类构造函数this.childProp = "Child";}
}
三、原型链的使用场景
  1. 共享方法以节省内存​:
function Car(model) {this.model = model;
}
// 所有实例共享同一方法
Car.prototype.drive = function() {console.log(
${this.model} is driving.
);
};
const car1 = new Car("Toyota");
const car2 = new Car("Honda");
  1. 扩展内置对象功能​:
Array.prototype.sum = function() {return this.reduce((acc, val) => acc + val, 0);
};
const arr = [1, 2, 3];
console.log(arr.sum()); // 6
  1. 实现继承与多态​:
function Animal(name) {this.name = name;
}
Animal.prototype.speak = function() {console.log(
${this.name} makes a noise.
);
};
function Dog(name) {Animal.call(this, name);
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.speak = function() { // 方法重写console.log(
${this.name} barks.
);
};
const dog = new Dog("Buddy");
dog.speak(); // "Buddy barks."
  1. 实现混合继承(Mixin)​​:
const canSwim = {swim() {console.log(
${this.name} is swimming.
);}
};
function Fish(name) {this.name = name;
}
Object.assign(Fish.prototype, canSwim);
const nemo = new Fish("Nemo");
nemo.swim(); // "Nemo is swimming."
四、注意事项与潜在问题
  1. 原型污染​:

    • 风险​:修改原型属性会影响所有实例。
    Array.prototype.push = function() { // 错误做法!console.log("Push disabled!");
    };
    const arr = [1, 2];
    arr.push(3); // 输出"Push disabled!",原功能被破坏
    
    • 规避​:避免直接修改内置对象的原型,优先使用组合或装饰器模式。
  2. 性能优化​:

    • 深层次原型链可能导致属性查找变慢,现代引擎对此有优化,但需注意设计合理性。
五、总结
  • 核心机制​:原型链通过[[Prototype]]实现继承链,支持属性查找和方法共享。

  • 适用场景​:

    • 对象方法共享(节省内存)。

    • 实现类式继承和多态。

    • 扩展内置对象功能(需谨慎)。

  • 最佳实践​:

    • 使用Object.create()替代直接修改__proto__

    • 优先选择ES6 class语法简化继承逻辑。

    • 避免原型污染,确保代码可维护性。

http://www.dtcms.com/wzjs/563123.html

相关文章:

  • 网站漂浮特效怎么做宣传片制作的十大步骤
  • 加强网站队伍建设网站建设 功能需求
  • 做ppt模板网站有哪些内容江门东莞网站建设
  • 不备案的网站的稳定吗设计公司网站需要什么条件
  • 天津做网站贵吗php做网站麻烦吗
  • 网站的建设目标有哪些中文wordpress教程
  • 汕头网站网店建设wordpress 页面分级
  • 网站备案背景幕布打印多大杭州职工业能力建设网站
  • 网站开发研究资料书籍房地产官网
  • 基层建设杂志网站网站建设走无形资产
  • 网站广告位图片更换没反应苏州广告公司十强
  • 建站行业成为买方市场如何伪原创 网站
  • 三站合一 网站建设广州专业做标书公司
  • 中山网站建设文化价格西安seo工作室
  • 网站做推广有用吗ppt那个网站做的好
  • 动易网站官网项目管理师
  • 建设营销型网站服务有什么免费ppt模板网站
  • 小说网站模板建站品牌vi包括什么
  • 手机报价大全2021中关村如何对网站做引擎优化
  • 上海800做网站网络布局设计
  • 电子商务网站建设报价表最好看的网站设计
  • 网站模板如何制作凡客和凡客诚品一样吗
  • 欧美网站欣赏无锡前洲行业网站建设
  • 网站地图 xml html免费设计网站素材
  • 网站建设科技有限公司微信小程序怎么解绑
  • 公司网站高端网站建设东莞最新一例阳性
  • 做南美生意做什么网站好怎么查找网站后台
  • 企业培训网站建设网站seo外包
  • dede网站建设步骤优秀设计作品网站
  • 苏州建设职业培训中心网站已有域名怎么建设网站