商务网站建设毕业设计模板,wordpress站外链接,工业设计大赛官网,电商开发网站公司原型与原型链
原型
每一个函数都有一个属性#xff1a;prototype,默认指向object空对象#xff0c;就是原型对象,原型对象有一个constructor属性#xff0c;指向函数对象每一个实例化对象都有一个属性 proto ,默认指向构造函数的原型对象#xff08;是构造函数原型对象的…原型与原型链
原型
每一个函数都有一个属性prototype,默认指向object空对象就是原型对象,原型对象有一个constructor属性指向函数对象每一个实例化对象都有一个属性 proto ,默认指向构造函数的原型对象是构造函数原型对象的一个引用 var Fun function(){// console.log(构造函数)}console.log(Fun.prototype.constructor Fun) // truevar fu new Fun()console.log(fu.__proto__ Fun.prototype) //trueFun.prototype.newfun function(){console.log(新方法)}fu.newfun()[外链图片转存失败(img-dSAsDvPJ-1562680215660)(image/proto.png)]
原型链
所有函数都是Function的实例包括Function()自己和Object(),也就是所有函数都有一个__proto__属性指向Function的显式原型Function.prototypeObject是所有对象的构造函数寻找对象的属性或方法时最终会找到Object,Object的隐式原型是Null如果在Object中还没找到对应的属性或方法就会为underfind
console.log(Function.prototype)
console.log(Fun instanceof Function) //true
console.log(Object instanceof Function) //true
console.log(Function instanceof Object) // true
console.log(Function instanceof Function) //trueconsole.log(Object.prototype Fun.prototype.__proto__) // true
console.log(Object.prototype.__proto__) // nullconsole.log(Function.prototype Object.__proto__) // true
console.log(Function.__proto__ Function.prototype) // true
console.log(Function.prototype.__proto__ Object.prototype) // true[外链图片转存失败(img-8rF7HpZg-1562680215677)(image/proto2.jpg)]
总结
原型与原型链 原型 显式原型与隐式原型 每一个构造函数都会有一个prototype属性指向一个Object空对象就是显式原型每一个实例化对象都有一个__proto__属性指向其构造函数的显式原型的值 原型链查找对象的属性和方法 所有函数都是Function的实例包括Function自己和Object()Function.__proto__ Function.prototype所有对象都是由Object实例化而来 所有对象在寻找某个属性或方法时最终会找到Object中Object.proto null Object instanceof Function 为true而反过来Function instanceof Object 也为true他们互相是对方的构造函数