JavaScript中的原型与原型链
JavaScript中的原型与原型链
JavaScript 中的原型,他是函数对象的属性,同时他也是一个对象,即:prototype
,我们称他为原型对象
我们通常说的原型指的是另外一个属性:__proto__
,他通常是给浏览器使用的,我们程序员操作的则是 prototype
属性
prototype与__ proto__关系
function Foo(){
}
const f = new Foo()
console.log(f.__proto__ === Foo.prototype)
如上述代码所述:构造函数的prototype
等于实例对象的 __proto__
JavaScript中的相关规则:
- JavaScript 中的所有函数都是 Function 的实例对象
- Object.prototype 是顶层原型对象
- instanceof是用来构造函数的prototype属性是否出现在某个实例对象的原型链上
function Foo() {
}
const f1 = new Foo()
console.log(Object instanceof Object);
console.log(Object instanceof Function);
console.log(Function instanceof Object);
console.log(f1 instanceof Object);
console.log(f1 instanceof Function);