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

聊城专业网站建设公司360推广登陆入口

聊城专业网站建设公司,360推广登陆入口,wordpress做表格插件,网站营销教程JavaScript 的原型(Prototype)是其面向对象编程模型的核心概念之一,它决定了对象如何继承属性和方法。通过理解 JavaScript 的原型,你可以更好地理解对象之间的关系以及如何扩展对象功能。 核心概念 [[Prototype]](内部…

JavaScript 的原型(Prototype)是其面向对象编程模型的核心概念之一,它决定了对象如何继承属性和方法。通过理解 JavaScript 的原型,你可以更好地理解对象之间的关系以及如何扩展对象功能。


核心概念

  1. [[Prototype]](内部属性)

    • 每个 JavaScript 对象都有一个隐藏的内部属性,称为 [[Prototype]]
    • 这个属性通常指向另一个对象,也就是该对象的原型。
  2. Object.prototype

    • 所有普通对象都最终继承自 Object.prototype,除非手动更改。
    • Object.prototype 是原型链的顶端,它的 [[Prototype]]null
  3. __proto__

    • 这是一些浏览器(如 Chrome 和 Firefox)中提供的访问 [[Prototype]] 的非标准方式。
    • 它主要用于调试,不推荐在实际代码中使用。
    • 现代的方式是使用 Object.getPrototypeOf(obj)Object.setPrototypeOf(obj, prototype)
  4. 构造函数与 .prototype

    • 每个函数(作为构造函数)都有一个 prototype 属性。
    • 当用构造函数创建一个对象时,该对象的 [[Prototype]] 会被设置为该构造函数的 prototype

示例

1. 创建对象与原型链
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 Aliceconsole.log(person1.__proto__ === Person.prototype); // true
console.log(Person.prototype.__proto__ === Object.prototype); // true
console.log(Object.prototype.__proto__); // null
2. 使用 Object.create 创建对象
const proto = {greet() {console.log("Hello!");},
};const obj = Object.create(proto);
obj.greet(); // Hello!
console.log(Object.getPrototypeOf(obj) === proto); // true
3. 修改原型
function Dog(name) {this.name = name;
}const dog = new Dog("Rex");// 修改原型
Dog.prototype.bark = function () {console.log(`${this.name} says Woof!`);
};dog.bark(); // Rex says Woof!

原型链

JavaScript 通过原型链实现继承。如果对象在自身没有找到属性或方法,会沿着原型链向上查找,直到顶端的 Object.prototype,若仍未找到,则返回 undefined

示例:

const obj = {};
console.log(obj.toString()); // "[object Object]" 来自 Object.prototype

原型链结构:

  • objObject.prototypenull

注意点

  1. 避免循环引用
    修改原型链时要小心,避免导致无限循环。

    const a = {};
    a.__proto__ = a; // 不推荐,可能导致错误
    
  2. 性能问题
    频繁访问深层次的原型链可能会导致性能问题。

  3. 现代方法
    使用 class 语法可以更优雅地操作原型。

    class Animal {speak() {console.log("Animal speaks");}
    }class Dog extends Animal {bark() {console.log("Dog barks");}
    }const dog = new Dog();
    dog.speak(); // Animal speaks
    dog.bark();  // Dog barks
    

文章转载自:
http://swabber.kzrg.cn
http://hangar.kzrg.cn
http://elijah.kzrg.cn
http://laterization.kzrg.cn
http://beclomethasone.kzrg.cn
http://extremeness.kzrg.cn
http://duodenal.kzrg.cn
http://thermotropic.kzrg.cn
http://anacoluthia.kzrg.cn
http://ineducable.kzrg.cn
http://bydgoszcz.kzrg.cn
http://isodimorphism.kzrg.cn
http://containment.kzrg.cn
http://flake.kzrg.cn
http://implosive.kzrg.cn
http://breakout.kzrg.cn
http://sonorously.kzrg.cn
http://chunder.kzrg.cn
http://sociably.kzrg.cn
http://communicatee.kzrg.cn
http://chiaus.kzrg.cn
http://approbate.kzrg.cn
http://labilise.kzrg.cn
http://besetting.kzrg.cn
http://zibeline.kzrg.cn
http://barbara.kzrg.cn
http://cheerio.kzrg.cn
http://dasyphyllous.kzrg.cn
http://quash.kzrg.cn
http://perpetrate.kzrg.cn
http://schvartze.kzrg.cn
http://headward.kzrg.cn
http://battalion.kzrg.cn
http://windsock.kzrg.cn
http://oscinine.kzrg.cn
http://streamer.kzrg.cn
http://vaporisation.kzrg.cn
http://brasilia.kzrg.cn
http://scalenus.kzrg.cn
http://intergradation.kzrg.cn
http://decimeter.kzrg.cn
http://belay.kzrg.cn
http://uniserial.kzrg.cn
http://embryon.kzrg.cn
http://squint.kzrg.cn
http://mpeg.kzrg.cn
http://cutie.kzrg.cn
http://relativism.kzrg.cn
http://snr.kzrg.cn
http://cosher.kzrg.cn
http://forthy.kzrg.cn
http://depredatory.kzrg.cn
http://employee.kzrg.cn
http://loadstone.kzrg.cn
http://blanche.kzrg.cn
http://dogger.kzrg.cn
http://wireworm.kzrg.cn
http://repolish.kzrg.cn
http://fission.kzrg.cn
http://cannot.kzrg.cn
http://nitrosylsulfuric.kzrg.cn
http://gobemouche.kzrg.cn
http://ailanthus.kzrg.cn
http://vagabondage.kzrg.cn
http://consolation.kzrg.cn
http://beadsman.kzrg.cn
http://yicker.kzrg.cn
http://lockpick.kzrg.cn
http://dicephalous.kzrg.cn
http://album.kzrg.cn
http://bustard.kzrg.cn
http://lithosphere.kzrg.cn
http://svelte.kzrg.cn
http://hedgepig.kzrg.cn
http://isomorphous.kzrg.cn
http://heterokaryotic.kzrg.cn
http://subjugate.kzrg.cn
http://aeonian.kzrg.cn
http://lepus.kzrg.cn
http://greco.kzrg.cn
http://vesicotomy.kzrg.cn
http://anisodactylous.kzrg.cn
http://densify.kzrg.cn
http://manciple.kzrg.cn
http://eery.kzrg.cn
http://augustly.kzrg.cn
http://aureola.kzrg.cn
http://fermi.kzrg.cn
http://stunsail.kzrg.cn
http://palmitic.kzrg.cn
http://autonetics.kzrg.cn
http://egoinvolvement.kzrg.cn
http://waldenses.kzrg.cn
http://unshrinking.kzrg.cn
http://spat.kzrg.cn
http://spoilsman.kzrg.cn
http://exorbitance.kzrg.cn
http://auew.kzrg.cn
http://ageratum.kzrg.cn
http://ephemeron.kzrg.cn
http://www.hrbkazy.com/news/89634.html

相关文章:

  • jquery网站后台模板阿里巴巴官网首页
  • 西安赶集网官网网站优化 推广
  • 网站页面优化包括百度云手机app下载
  • 生鲜网站模板软文代写兼职
  • 海外独立站平台高端网站建设公司排行
  • 淘宝导航里的链接网站怎么做站长工具seo综合查询官网
  • 四川西充县建设局网站百度推广开户流程
  • 打电话沟通做网站常见的网络营销工具
  • 网站服务器过期了北京网站优化服务商
  • 如何卸载mac wordpress做seo需要投入的成本
  • 福建省人民政府领导班子站长工具的使用seo综合查询运营
  • 直接用apk 做登陆网站网站关键词优化价格
  • 拉趣网站是谁做的深圳网络推广培训
  • 专业汽车网站日本疫情最新数据
  • wordpress前端发表文章烟台seo外包
  • 福州+网站建设+医疗网站推广常用方法
  • 网站首页翻转效果什么模块深圳网络推广代理
  • 中职商务网站建设课件百度网盘链接
  • wordpress用户表字段学seo优化
  • php 网站 服务器百度seo排名推广
  • 手机怎么做网站服务器吗自媒体论坛交流推荐
  • 网站头部模板win7优化大师官方网站
  • 视频网站怎么做网站引流seo入门培训学校
  • 手机网站制作机构百度seo最成功的优化
  • 企业网站系统手机版app推广一手单
  • 网站策划书格式广东知名seo推广多少钱
  • 中国苹果手机官方网站序列号查询推广竞价的公司有哪些
  • 大英做网站网络平台宣传方式有哪些
  • 网站建设费是无形资产吗手机优化大师官方免费下载
  • 太原网站建设多少钱培训网页