原型是函数的prototype属性指向的对象,每个对象通过[[Prototype]]链接向上查找属性,形成原型链:p1→Person.prototype→Object.prototype→null,实现继承与共享。

JavaScript中的原型与原型链是理解对象继承和属性查找机制的核心。很多人初学时觉得抽象,其实只要抓住几个关键点,就能快速掌握它的运行逻辑。
在JavaScript中,每一个函数创建时都会自动生成一个prototype属性,这个属性指向一个对象,称为“原型对象”。而每个对象(除部分特殊情况外)都有一个内部属性[[Prototype]],它指向其构造函数的prototype。
例如:
function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log("Hello, I'm " + this.name);
};
const p1 = new Person("Alice");
p1.sayHello(); // 输出: Hello, I'm Alice
立即学习“Java免费学习笔记(深入)”;
这里,p1本身没有sayHello方法,但它能调用,是因为JavaScript通过原型找到了Person.prototype上的该方法。
当访问一个对象的属性时,JavaScript会先检查对象自身是否有这个属性。如果没有,就会沿着[[Prototype]]链向上查找,直到找到匹配属性或到达原型链末端(即null)。
比如:
这就是原型链的本质:一条由[[Prototype]]连接起来的对象链条。
现代JavaScript提供了几个常用方法来操作原型:
推荐使用Object.getPrototypeOf和Object.create来保证代码的规范性和兼容性。
理解原型链时,有几个容易混淆的地方:
小技巧:如果你想让多个实例共享某个方法或数据,把它挂到prototype上,而不是定义在构造函数内部,这样更节省内存。
基本上就这些。原型不是魔法,只是JavaScript对象之间通过链接共享属性和方法的一种机制。搞清楚谁连着谁,查找顺序是什么,自然就通了。不复杂但容易忽略细节。
以上就是JavaScript原型与原型链深入浅出_javascript技巧的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号