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

青海企业网站制作360ssp网站代做

青海企业网站制作,360ssp网站代做,网站建设维护的相关基本知识,网站建设采购原型和原型链是 JavaScript 中实现对象继承和属性查找的核心机制。为了更深入地理解它们#xff0c;我们需要从底层原理、实现机制以及实际应用等多个角度进行分析。 1. 原型#xff08;Prototype#xff09; 1.1 什么是原型#xff1f; 每个 JavaScript 对象#xff08…原型和原型链是 JavaScript 中实现对象继承和属性查找的核心机制。为了更深入地理解它们我们需要从底层原理、实现机制以及实际应用等多个角度进行分析。 1. 原型Prototype 1.1 什么是原型 每个 JavaScript 对象除 null 外都有一个内部属性 [[Prototype]]指向它的原型对象。原型对象也是一个普通对象它包含可以被其他对象共享的属性和方法。通过 __proto__非标准但广泛支持或 Object.getPrototypeOf() 可以访问对象的原型。 1.2 构造函数与原型 每个函数构造函数都有一个 prototype 属性指向一个对象这个对象是该构造函数实例的原型。当使用 new 关键字创建实例时实例的 [[Prototype]] 会指向构造函数的 prototype 对象。 function Person(name) {this.name name; }// 在构造函数的原型上添加方法 Person.prototype.sayHello function() {console.log(Hello, my name is ${this.name}); };const person1 new Person(Alice); person1.sayHello(); // 输出: Hello, my name is Alice在上面的例子中 Person.prototype 是 person1 的原型对象。person1.__proto__ 指向 Person.prototype。 2. 原型链Prototype Chain 2.1 什么是原型链 原型链是由对象的 [[Prototype]] 连接起来的链式结构。当访问对象的属性或方法时如果对象本身没有该属性JavaScript 会沿着原型链向上查找直到找到该属性或到达原型链的顶端null。 2.2 原型链的顶端 所有对象的原型链最终都会指向 Object.prototype而 Object.prototype 的 [[Prototype]] 是 null。如果在整个原型链中都找不到属性则返回 undefined。 console.log(person1.toString()); // 输出: [object Object]在上面的例子中 person1 本身没有 toString 方法。JavaScript 引擎会沿着原型链查找 person1 - 没有 toString。person1.__proto__即 Person.prototype - 没有 toString。Person.prototype.__proto__即 Object.prototype - 找到 toString调用它。 3. 原型链的深度分析 3.1 原型链的构建 原型链是通过 [[Prototype]] 连接起来的。当我们创建一个对象时它的 [[Prototype]] 会指向某个原型对象。 const obj {}; console.log(obj.__proto__ Object.prototype); // true如果我们手动修改 [[Prototype]]可以构建自定义的原型链。 const parent { name: Parent }; const child Object.create(parent); // child.__proto__ 指向 parent console.log(child.name); // 输出: Parent3.2 原型链的查找机制 当访问对象的属性时JavaScript 引擎会按照以下步骤查找 检查对象自身是否有该属性。如果没有沿着 [[Prototype]] 向上查找。重复这个过程直到找到属性或到达 null。 const grandparent { familyName: Smith }; const parent Object.create(grandparent); const child Object.create(parent);console.log(child.familyName); // 输出: Smith在上面的例子中 child 自身没有 familyName。child.__proto__即 parent也没有 familyName。parent.__proto__即 grandparent有 familyName返回 Smith。 4. 原型链与继承 4.1 基于原型的继承 JavaScript 通过原型链实现继承。子类的原型对象指向父类的实例从而继承父类的属性和方法。 function Person(name) {this.name name; }Person.prototype.sayHello function() {console.log(Hello, my name is ${this.name}); };function Student(name, grade) {Person.call(this, name); // 调用父类构造函数this.grade grade; }// 继承父类原型 Student.prototype Object.create(Person.prototype); Student.prototype.constructor Student; // 修复构造函数指向const student1 new Student(Bob, 10); student1.sayHello(); // 输出: Hello, my name is Bob在上面的例子中 Student.prototype 的原型指向 Person.prototype。student1 可以访问 Person.prototype 上的方法。 4.2 原型链的局限性 原型链继承是单向的子类可以访问父类的属性和方法但父类不能访问子类的属性和方法。如果原型链过长属性查找的性能会受到影响。 5. 原型链的实际应用 5.1 共享方法 将方法定义在原型上可以避免每个实例都创建一份方法的副本节省内存。 function Person(name) {this.name name; }Person.prototype.sayHello function() {console.log(Hello, my name is ${this.name}); };const person1 new Person(Alice); const person2 new Person(Bob);// person1 和 person2 共享同一个 sayHello 方法 console.log(person1.sayHello person2.sayHello); // true5.2 扩展内置对象 可以通过修改内置对象的原型来扩展其功能。 Array.prototype.last function() {return this[this.length - 1]; };const arr [1, 2, 3]; console.log(arr.last()); // 输出: 36. 总结 原型每个对象都有一个 [[Prototype]]指向它的原型对象。原型链通过 [[Prototype]] 连接起来的链式结构用于属性查找。继承通过原型链实现对象之间的继承。性能原型链过长会影响查找性能需谨慎设计。 理解原型和原型链是掌握 JavaScript 面向对象编程的关键也是深入理解 JavaScript 运行机制的基础。
http://www.hkea.cn/news/14297439/

相关文章:

  • 柏乡县网站建设wordpress用户投稿
  • 平面设计做兼职网站哪些ppt网站是免费的
  • w网站建设需求说明齐鲁石化建设公司官网
  • 建设征信注册中心网站wordpress适应ie6
  • 网站开发众筹自媒体创业
  • 觉得自己做的网站土怎么办陕西建设厅八大员官方网站
  • 银川网站建设多少钱巴中网站建设公司
  • 太原网站建设招聘网站模板哪个网站全面
  • 福建省建设工程资格中心网站网站上传好了如何做定向
  • 做跨境电商网站wordpress自己添加menu
  • 安顺网站开发公司阿里做的网站后台怎么进
  • 是用cms还是直接用语言写网站阿里 建设网站
  • 网站建设项目申请ppt网站免费服务器
  • 中国空间站设计在轨飞行几年和17做网店类似的货源网站
  • 东莞网站设计电话开封公司做网站
  • 游戏平台网站制作礼品行业网站建设
  • 社交网站 cms江苏工程建设标准网站
  • 上海制作网站的网站广告设计专业自我介绍
  • 创业邦使用什么网站模板顺德顺的网站建设
  • 营销型网站建设域名是求职信息发布网
  • 网站怎么被搜到首页wordpress 自动保存
  • wordpress添加可链接照片搜索引擎优化工具有哪些
  • 西安哪家做网站最好北京专业网站建设公司
  • 小学校园网站建设方案长沙做网站的公司
  • 江阴外贸网站制作一个备案号可以放几个网站
  • 湛江模板建站平台重慶网站开发
  • iis wordpress多站点seo优化价格
  • 网页设计与网站建设 作业php学校网站模板
  • 外贸网站推广企业中美关系最新消息新闻
  • 肇庆网站关键词优化wordpress百度索引