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

中国商品价格网seo优化网站推广

中国商品价格网,seo优化网站推广,青岛模板网站建设,百度网站建设费用在 JavaScript 中,原型(Prototype) 和 原型链(Prototype Chain) 是实现对象继承和属性共享的核心机制。以下是详细介绍: 一、原型(Prototype) 基本概念 每个函数(包括构…

在 JavaScript 中,原型(Prototype)原型链(Prototype Chain) 是实现对象继承和属性共享的核心机制。以下是详细介绍:

一、原型(Prototype)

  1. 基本概念

    • 每个函数(包括构造函数)都有一个 prototype 属性,指向一个对象,称为原型对象
    • 当使用 new 调用构造函数创建实例时,实例内部会有一个隐藏属性 __proto__(ES6 规范中称为 [[Prototype]]),指向构造函数的原型对象。
    • 原型对象的作用是为所有实例共享属性和方法,避免重复定义。
  2. 示例

    function Person(name) {this.name = name;
    }// 原型对象添加方法
    Person.prototype.sayHello = function() {console.log(`Hello, ${this.name}`);
    };const person = new Person("Alice");
    console.log(person.__proto__ === Person.prototype); // true
    person.sayHello(); // Hello, Alice
    

二、原型链(Prototype Chain)

  1. 基本概念

    • 每个对象(包括原型对象)都有自己的 __proto__,指向其“父级”原型对象,形成一条链式结构,称为原型链
    • 当访问对象的属性或方法时,JavaScript 会沿着原型链向上查找,直到找到目标属性或到达 null(终点)。
  2. 原型链结构

    Object.prototype ← Function.prototype ← ... ← 自定义原型 ← 实例
    
    • 所有对象的最终原型是 Object.prototype,它定义了 toString()valueOf() 等通用方法。
    • 函数的原型是 Function.prototype,而 Function.prototype 的原型是 Object.prototype
  3. 示例

    const obj = {};
    console.log(obj.toString()); // 来自 Object.prototype
    console.log(obj.hasOwnProperty("toString")); // false(属于原型链)
    

三、关键特性

  1. 属性查找规则

    • 优先查找对象自身的属性,若不存在则沿原型链向上查找。
    • 修改对象自身的属性会直接覆盖原型链中的同名属性。
  2. 原型链的继承

    • 通过修改原型对象,可以实现类似“继承”的效果。例如:
      function Animal() {}
      Animal.prototype.eat = function() { console.log("Eating..."); };function Dog() {}
      Dog.prototype = Object.create(Animal.prototype); // Dog 的原型链继承 Animal
      Dog.prototype.bark = function() { console.log("Woof!"); };const dog = new Dog();
      dog.eat(); // 继承自动物原型
      dog.bark(); // 自身方法
      
  3. 原型链的终点

    • Object.prototype.__proto__ 的值为 null,表示原型链的结束。

四、相关方法

  1. isPrototypeOf()
    检查一个对象是否是另一个对象的原型:

    console.log(Animal.prototype.isPrototypeOf(dog)); // true
    
  2. hasOwnProperty()
    判断属性是否是对象自身的属性(而非原型链中的属性):

    console.log(dog.hasOwnProperty("bark")); // true
    
  3. Object.getPrototypeOf()
    获取对象的原型(ES6 方法,替代 __proto__):

    console.log(Object.getPrototypeOf(dog) === Dog.prototype); // true
    

五、注意事项

  • 避免原型链过长:过长的原型链会影响属性查找性能。
  • 原型与实例的动态关联:修改原型对象会影响所有后续创建的实例,但已存在的实例不会受影响。
  • class 语法糖:ES6 的 class 本质上仍基于原型链,只是语法糖简化了实现。

总结

  • 原型是对象共享属性和方法的基础。
  • 原型链通过 __proto__ 连接对象,实现属性的继承和查找。
  • 理解原型链有助于掌握 JavaScript 的核心机制(如继承、多态),并避免常见错误。

文章转载自:

http://za3P2SW8.mLhcb.cn
http://WjC2lYlr.mLhcb.cn
http://e3Vkzp4e.mLhcb.cn
http://Ux3noD6b.mLhcb.cn
http://mUuXeXSr.mLhcb.cn
http://mC0KAROb.mLhcb.cn
http://Dv0KT2r6.mLhcb.cn
http://9nWCUzBU.mLhcb.cn
http://IYeySCbu.mLhcb.cn
http://DFnmhXyN.mLhcb.cn
http://vN7G4CX7.mLhcb.cn
http://Y3ggBxMv.mLhcb.cn
http://j0CFKymA.mLhcb.cn
http://eFlhkxx7.mLhcb.cn
http://Se0TL6yj.mLhcb.cn
http://MhS2zwnv.mLhcb.cn
http://qpmKgtUh.mLhcb.cn
http://FUbbRG4g.mLhcb.cn
http://eqpro5pc.mLhcb.cn
http://dV27gk0k.mLhcb.cn
http://u5kTw2EJ.mLhcb.cn
http://Sqnh7Tx3.mLhcb.cn
http://FLCk8dyl.mLhcb.cn
http://GAJvjIcb.mLhcb.cn
http://8PaTEYTy.mLhcb.cn
http://8TblDOZ7.mLhcb.cn
http://LziG3wjr.mLhcb.cn
http://J7tmE5Yu.mLhcb.cn
http://WgDMramM.mLhcb.cn
http://MjIDWDpP.mLhcb.cn
http://www.dtcms.com/wzjs/769020.html

相关文章:

  • 做公司网站要提供什么网站建设 中企动力东莞后台管理
  • 哪些网站是.net开发的asp网站安装教程
  • 安顺 网站建设自动引流推广app
  • 河北唐山建设工程协会网站网页制作一个网站八个页面咋做
  • 宣传片拍摄合同模板网站标签优化
  • 怎么在网上接网站开发的工作wordpress tag 插件
  • 企业网站手机版模板免费下载胶南网站建设公司
  • 网站登录账号密码保存在哪里西北旅游攻略
  • 行政单位单位网站建设企业网站建设方案 功能规划
  • 运营网站费用代理服务网站
  • 做芯片哪个网站推广网站建设温州科目一
  • 查网站开通时间广州网站建设设计哪家好
  • 哪家高端网站建设好小程序与app的区别
  • 东拼西凑网站谁做的wordpress 定制搜索
  • 网站模板站扩容网站运营怎么样
  • 技术网站的费用怎么做会计分录云南建设厅网站监理员培训
  • 摄影网站难做吗logo在线设计图片
  • 品牌网站建设报价表wordpress 父分类显示子分类文章
  • 郑州网站建设公司电话多少wordpress 优化 插件
  • 浙江省建设厅网站查询百度网页版官方
  • 网站修改建议网站设计需要学什么软件
  • 洛阳做网站推广我想做代理
  • 免费网站域名申请免费的网站后台管理系统
  • 廉价网站建设网站常用配色
  • 网站建设的基本步骤和过程网站后台无法审核
  • 网站开发 教学大纲备案域名网站大全
  • 深圳公司网站建设服务为先为什么要用php做网站
  • 常见的网站结构类型小程序的功能与作用
  • 苏州高端网站制作官网上海软件外包公司名单
  • 前海网站建设福田做棋牌网站建设哪家公司便宜