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

免费个人网站怎么制作简述电子商务网站开发的主要步骤

免费个人网站怎么制作,简述电子商务网站开发的主要步骤,如何成为厂家代理商,贵阳市门户网站在 JavaScript 中,prototype 和 __proto__ 都与原型链相关,但它们的角色和用途有本质区别: 1. prototype 和 __proto__ 的区别 特性prototype__proto__归属对象仅函数对象拥有(如构造函数)所有对象默认拥有&#xff0…

在 JavaScript 中,prototype__proto__ 都与原型链相关,但它们的角色和用途有本质区别:


1. prototype__proto__ 的区别

特性prototype__proto__
归属对象仅函数对象拥有(如构造函数)所有对象默认拥有(包括函数对象)
作用定义构造函数创建实例时的原型模板指向实例对象的实际原型对象
关系构造函数的 prototype 是实例的 __proto__实例的 __proto__ 指向其构造函数的 prototype
示例function Foo() {}
Foo.prototype
const obj = {}
obj.__proto__
核心区别
  • 构造函数视角
    函数的 prototype 是一个显式定义的模板对象,用于给所有通过 new 创建的实例提供共享属性和方法。

  • 实例视角
    对象的 __proto__ 是一个隐式引用,指向它的构造函数的 prototype,形成原型链。

代码示例
function Person(name) {this.name = name;
}// 构造函数的 prototype 定义共享方法
Person.prototype.sayHello = function() {console.log(`Hello, I'm ${this.name}`);
};const alice = new Person("Alice");// 实例的 __proto__ 指向构造函数的 prototype
console.log(alice.__proto__ === Person.prototype); // true
console.log(Person.prototype.__proto__ === Object.prototype); // true

2. 手动修改对象的原型

JavaScript 允许通过以下方式动态修改对象的原型:

方法 1:Object.setPrototypeOf(obj, proto)
  • 作用:直接设置对象的 [[Prototype]](即 __proto__)。
  • 示例
    const parent = { value: 42 };
    const child = {};// 修改 child 的原型为 parent
    Object.setPrototypeOf(child, parent);console.log(child.value); // 42(通过原型链访问)
    
方法 2:obj.__proto__ = proto
  • 作用:通过 __proto__ 属性直接赋值(非标准,但广泛支持)。
  • 示例
    const parent = { value: 42 };
    const child = {};child.__proto__ = parent;
    console.log(child.value); // 42
    
方法 3:创建时指定原型(Object.create()
  • 作用:在对象创建时直接指定原型。
  • 示例
    const parent = { value: 42 };
    const child = Object.create(parent); // child 的原型是 parentconsole.log(child.value); // 42
    

注意事项

  1. 性能问题
    动态修改原型(如 Object.setPrototypeOf)可能影响 JavaScript 引擎的优化,尽量避免在性能敏感场景使用。

  2. 更安全的替代
    优先使用 Object.getPrototypeOf(obj) 获取原型,避免直接操作 __proto__

  3. 构造函数场景
    若需批量修改实例的原型,应直接修改构造函数的 prototype

    function Animal() {}
    Animal.prototype.eat = function() {};function Dog() {}
    // 让 Dog 的实例继承 Animal 的原型
    Dog.prototype = Object.create(Animal.prototype);
    

总结

  • prototype 是构造函数的显式原型模板__proto__ 是实例的隐式原型引用
  • 修改原型时,优先使用 Object.create()Object.setPrototypeOf(),避免直接操作 __proto__
http://www.dtcms.com/wzjs/783504.html

相关文章:

  • 采购需求网站建设网站页面设计如何收费
  • 企业官网建站的流程360排名检测
  • wordpress andriod网站seo搜索引擎的原理是什么
  • 名词解释 网站内容wordpress自动推送百度
  • 移动端企业网站重庆造价信息价查询
  • php 手机网站源码哪里可以做虚拟货币网站
  • 网站颜色配色做食品外贸选哪个网站好
  • 网站建设佛山拓客科技青岛网站建设电话
  • 网站流量怎么挣钱个人简历模板免费可编辑
  • html 好的网站栾城网站制作
  • 长沙做网站建设公司哪家好郑州网站优化网络建设有限公司
  • 网站预订功能怎么做pdf文件打印乱码
  • 网站建设的流程及步骤wordpress当DAM用
  • 网站从哪里找的骨骼型的网站
  • 网站制作公司都还赚钱吗省建设厅网站
  • 专做美妆的视频网站室内装修效果图网站有哪些
  • 网站开发外包协议济南网站制作公司
  • 建网站公司 深圳下载百度免费版
  • 咋做网站代码背景图物联网名词解释
  • 营销型网站建站wordpress iis 分页 404
  • 吴中区做网站教做衣服网站
  • 开封建站公司seo案例网站建设哪家好
  • 淘宝卖东西如何在网站做宣传去了哪找网站建设公司
  • 校园网网站建设费用ps软件下载电脑版教程
  • 义乌网站建设优化推广天津建设监理协会网站
  • 长春网站建设团队湖南建设工程招标网
  • 深圳网站建设 cms试述企业网的定义和意义
  • 漯河建设企业网站徐州一级资质钢结构网架公司
  • 重庆网站建设培训学校帮网站做推广赚钱吗
  • 英文网站怎么做301跳转怎么做自己的个人网站