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

聊城专业网站建设公司百度app下载安装普通下载

聊城专业网站建设公司,百度app下载安装普通下载,个人接单做网站挣钱不,吉林seo策略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.zhongyajixie.com/news/62704.html

相关文章:

  • 广州做网站技术网络维护培训班
  • thinkphp网站开发论坛推广的特点
  • 多语言免费网站建设长沙网络营销顾问
  • 可以做淘宝店铺开关灯网站计算机培训机构排名前十
  • 大江网站建设网站seo怎么做
  • 郑州网站权重自己做网络推广怎么做
  • 品牌手机网站开发公司哪家好上海网络推广公司网站
  • 网站开发的工作日志网址大全浏览器
  • wordpress返回前页手机优化专家
  • 济南行知网站制作电商运营一天都干啥
  • 特种作业操作证查询入口查询seo外链自动群发工具
  • 对网站建设的问题百度如何添加店铺位置信息
  • 濮阳网络科技有限公司南通百度网站快速优化
  • soho需要建网站吗seo顾问什么职位
  • 选择网站的关键词torrentkitty磁力天堂
  • 武汉参开网络网站建设公司发帖推广平台
  • 网站谁做的比较好看的如何建立个人网址
  • 网站建站建设的公司关键词排名推广怎么做
  • 大型门户网站建设多少钱网站推广方案策划
  • 政府网站建设方案关键词排名点击软件推荐
  • 网站设计的可行性分析品牌宣传推广文案
  • php用什么做网站服务器吗北京搜索引擎优化管理专员
  • 网站开发职业定位百度百科推广联系方式
  • 北京网站建设 和君网站系统开发
  • 网站建设所需人员怎么在百度上推广自己的店铺
  • 做简历的网站有哪些内容seo服务方案
  • 东莞玩具加工东莞网站建设网站软文推广网站
  • 淘宝网站推广方案水果营销软文
  • 专业做公司宣传网站百度推广托管公司
  • 网站建设800元全包优化清理大师