Javascript笔记 - 原型,原型指针,原型链
在javascript中,每个函数都会初始化一个属性,原型(prototype),当我们需要访问这个函数的某个属性时,就会去到prototype中寻找这个属性,若没有找到这个属性,prototype中也存在自己的prototype,于是乎就这样一直往上找,这就是原型链的概念。
原型本身也是一个对象,内部存在一个原型指针(_proto_)和构造器指针(_constructor_)
原型指针:指向所继承对象的原型属性构造器指针:指向自己本身
原型链的特点:
Javascript的对象都是通过引用传递的,我们创建新对象的时候并没有一份属于对象本身的原型副本,都是通过不断的往上继承而来的,当我们修改原型时,与之相关的对象也会继承这一改变。
当我们需要用到一个对象的属性时,就会通过原型链不断往上寻找,直至追朔到内置的Object对象,依然找不到,则返回undefined。
代码例子:
// 创建一个函数(类)
function fn() { };
//创建该函数的实例对象
var fn1 = new fn();
console.log(fn1.__proto__ === fn.prototype); // 结果为true,原型指针指向上一个继承类的原型属性
console.log(fn.__proto__ === Function.prototype); // 结果为true,函数为Function类的实例对象
console.log(fn.prototype.__proto__ === Object.prototype); // 结果为true,prototype自己本身也是一个对象
console.log(fn.prototype.__constructor__ === fn()); // 结果为true,构造器指针指向自己本身
JS原型与原型链解析
本文深入探讨了JavaScript中原型和原型链的概念。解释了如何通过原型指针连接不同的对象,形成查找属性的路径,并提供了具体的代码示例来说明这些概念。
2078

被折叠的 条评论
为什么被折叠?



