Open kingport opened 4 years ago
function Mother(lastName) {
this.lastName = lastName
}
var son = new Mother('Wang')
function Supermarket() {
Supermarket.prototype.product = '口罩'
}
function Shop() {
Shp.prototype = new Supermarket()
}
var person = new Shop();
console.log(person.product)
我们看上代码执行的过程
如何准确判断一个变量是数组类型?
一道经典的面试题
var F = function(){}
Object.prototype.a = fucntion(){}
Function.prototype.b = function() {}
var f = new F();
* 我们理解为 f 是小孩 F是父母
* 那么小孩去找a b方法我们先找父母,发现F中没有a b方法
* 我们再向上找爷爷奶奶,通过proto隐式属性来进行查找
* 可以看到是Object原型对象 里面有a的方法
* 所以小孩只有a的方法 方法b没有
* 方法b保存在Fucntion原型对象中
原型和原型链
其实_proto_是对象中的一个属性,在创建对象的时候就会生成
[[prototype]]另外一种写法
我们用3个引用类型来举例 创建3个不同的对象
根据图示我们可以理解为:
那我们再探讨 proto有没有原型呢
每当新对象被创建的时候,除了各自的属性以外,还有一个隐式的_proto_属性被创建,这个属性会指向各自的原型对象