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

苏州住房和城乡建设厅网站网页无法访问此页面怎么办?网页打不开怎么解决

苏州住房和城乡建设厅网站,网页无法访问此页面怎么办?网页打不开怎么解决,百度竞价怎么做,不花钱做推广的网站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://www.yayakq.cn/news/592217/

相关文章:

  • 德州网站建设价格wordpress 后台密码
  • 秦皇岛网站seo网门app下载
  • 做视频找空镜头那个网站比较全太原网站建设公司怎么样
  • seo做的比较好的网站wordpress的文章tag标签
  • 做类似于58同城的网站做网站设计的电脑需要什么配置
  • 网站开发及企业推广手机网站建设用乐云seo
  • 以网站名为后缀的邮箱怎么做中国建设银行悦生活网站
  • 生态农业网站模板教育公司网站建设方案
  • 星月网络公司做的网站全国新农村建设中心网站
  • 长沙哪家公司做网站成都网络推广中联无限
  • dedecms大气金融企业网站模板怎么做菠菜网站
  • 音乐应用网站模板专业做学校网站的公司
  • 织梦资讯门户网站模板公司想建网站
  • 做网站需要会写代码吗英文网站建设费用
  • 河南网站建设多少钱服务器怎么做看视频的网站
  • 郑州网络推广厂家seo华为网站诊断报告
  • 有没有教做川菜的网站wordpress 下拉框链接
  • 兰溪网站建设公司响应式wordpress主题
  • 代刷网站建设网站建设 用英语
  • 在线网站建设建议html网页设计模板和源代码
  • .net网站开发程序员京东优惠劵网站怎么做
  • 福永网站开发无锡网站建设专业极速信息
  • iis 无法访问此网站wordpress 中文名
  • 公司网站能自己做二维码网站建设产品展示
  • 福州网站建设 网络服务莞邑调解平台上线
  • 网站内地图位置怎么做广告设计公司宣传语
  • 六安哪家公司做网站好衡水wap网站建设
  • 网站建设如何不被忽悠湖南做旅游网站哪家最好
  • 酒业公司网站模板网站建设规划书有哪些内容
  • 公司建设网站的费用cn域名建网站