明天考核,今天我看了原型那部分,我都看了啥呢?
一、函数的prototype
1.每个函数都有一个prototype属性,他默认指向一个Object空对象(即称为:原型对象) 空对象是我们没有指认的
console.log(Date.prototype,typeof Date.prototype) //Object "object"
2.原型对象中有一个属性constructor,它指向函数对象
console.log(Date.prototype.constructor===Date) //true
console.log(Fun.prototype.constructor===Fun) //true
3.给原型对象添加属性(一般都是方法)
作用:函数的所有实例对象自动拥有原型中的属性(方法)
二、还有显示原型与隐式原型的部分
1.每个函数function都有一个prototype,即显式原型(属性),默认指向一个空的Object对象
console.log(Fn.prototype)
2.每个实例对象都有一个_proto_,可称为隐式原型(属性
3.对象的隐式原型的值为其对应的构造函数的显式原型的值
console.log(Fn.prototype === fn.__prototype__)
三、原型链
1.函数的显示原型指向的对象默认是空的object实例对象(但Object不满足)
console.log(Fn.prototype instanceof Object) //true
console.log(Object.prototype instanceof Object) //false
console.log(Function.prototype instanceof Object) //true
2.所有函数都是Function的实例(包括Function的本身,Function是它自身的实例)
console.log(Function.__proto__ === Function.prototype)
3.Object的原型对象是原型链的尽头
console.log(Object.prototype.__proto__) //null