简练的解释原型原型链组合与继承
提到原型,就能想到原型链及其构成。
我的思维首先得知道constructor、prototype、__proto__和new四种方法,再从函数入手解释:
constructor:函数的构造器,每个有自己独立的构造器,构造函数可以直接往内添加方法;
prototype:只有构造函数才有,实际就是对象,用来存储方法和存储自身的构造器;
__proto__:是实例化对象(new出来的)找到构造函数身上的方法,构造函数本身指向其本身;
new:当构造函数被new的时候,生成了一个实例化对象,因为它既可以往自身添加方法,也可以调用构造函数的方法;
首先声明一个函数:
function fn() {} 那么这个函数的构造函数就是Function,
function fn() {}
fn.a = 1
fn.prototype.b = 2
let fn1 = new fn
console.log(fn.constructor) // Function ƒ Function() { [native code] }
console.log(fn.prototype) // 对象 {constructor: ƒ,b:2}
console.log(fn.__proto__) // ƒ () { [native code] }
console.log(fn1.__proto__ === fn.prototype) // true
console.log(fn1.__proto__.constructor.b === fn.b) //true
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
