在JavaScript中,原型是对象可以从其他对象继承属性的机制。这是JavaScript面向对象的编程(OOP)功能的重要组成部分。
用简单的语言理解,请考虑JavaScript中的原型,例如蓝图或指南。 JavaScript中的每个对象都有指向其原型对象的链接,该原型对象具有自己的原型,创建了我们所谓的原型链。
当我们尝试在对象上访问属性或方法时,JavaScript将首先查看该属性或方法是否直接在对象上。如果不是这样,它可以看到对象的原型(其蓝图),然后将原型的原型,等于链条上的原型,直到它找到所需的东西或到达链的末端(通常是基本对象原型) 。
这是一个简单的例子:让我们想象我们有一个汽车对象。
let car = {
make: 'Toyota',
model: 'Camry'
};
我们可以为汽车创建一个原型,以描述所有汽车可以做的事情。
car.__proto__ = {
startEngine: function() {
return 'Engine started';
}
};
在此示例中,startEngine
是我们汽车原型的一种方法。现在,即使我们没有直接在汽车上定义它,我们也可以在car
上调用此方法:
console.log(car.startEngine()); // Outputs: 'Engine started'
当我们调用car.startEngine()
时,JavaScript首先查看startEngine
是直接在car
上的方法。不是,所以JavaScript着眼于汽车的原型并在那里找到startEngine
。
因此,原型就像对象的备份。如果一个对象无法做某事,则可以向其原型寻求帮助。
感谢您的阅读。我鼓励您在Twitter上关注我,我定期分享有关JavaScript和反应的内容,并为开源项目做出贡献。我目前正在寻找远程工作或实习。
Twitter:https://twitter.com/Diwakar_766