简练的解释原型原型链组合与继承

提到原型,就能想到原型链及其构成。

我的思维首先得知道constructor、prototype、__proto__和new四种方法,再从函数入手解释:

  1. constructor:函数的构造器,每个有自己独立的构造器,构造函数可以直接往内添加方法;

  1. prototype:只有构造函数才有,实际就是对象,用来存储方法和存储自身的构造器;

  1. __proto__:是实例化对象(new出来的)找到构造函数身上的方法,构造函数本身指向其本身;

  1. 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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部