【高频考点精讲】JavaScript中的原型模式:从对象创建到性能优化

JavaScript中的原型模式:从对象创建到性能优化

🧑‍🏫 作者:全栈老李

📅 更新时间:2025 年 5 月

🧑‍💻 适合人群:前端初学者、进阶开发者

🚀 版权:本文由全栈老李原创,转载请注明出处。

大家好,我是全栈老李。今天咱们聊聊JavaScript中那个让人又爱又恨的原型模式。这玩意儿就像JavaScript的DNA,搞懂了它,你就能看透这门语言的本质。

原型是个啥?

想象一下,你有个祖传秘方(比如老李家的红烧肉配方),你儿子想学做菜,不用从头发明,直接继承你的配方就行。在JS里,原型就是这个"祖传秘方"。

每个JavaScript对象都有个隐藏的[[Prototype]]属性(可以通过__proto__访问,但不推荐直接使用),它指向另一个对象——这就是原型。当你访问对象的属性时,如果对象本身没有,JS就会去原型上找,原型没有就去原型的原型上找,这就是原型链。

// 全栈老李示例:原型基础演示
function Person(name) {
   
   
  this.name = name;
}

// 在原型上添加方法
Person.prototype.sayHi = function() {
   
   
  console.log(`Hi, 我是${
     
     this.name},来自全栈老李的示例`);
};

const person1 = new Person('张三');
person1.sayHi(); // 输出: Hi, 我是张三,来自全栈老李的示例

// 检查原型关系
console.log(person1.__proto__ === Person.prototype); // true
console.log(Person.prototype.__proto__ === Object.prototype); // true

为什么需要原型?

你可能要问:为啥不直接把方法写在构造函数里?来,老李给你算笔账:

// 不推荐写法:方法写在构造函数内
function BadPerson(name) {
   
   
  this.name = name;
  this.sayHi = function() {
   
   
    console.log(`Hi, 我是${
     
     this.name}`);
  };
}

const bad1 = new BadPerson('李四');
const bad2 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈老李技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值