疑问:
最近在学习JavaSt的原型继承,但是对Object.prototye这个原型对象有点疑问?
这个Object.prototye对象到底是一个什么对象呢?
既不是Object的实例,又不是Function的实例,用tepeof元素符,还是个对象类型,
请大家,能给我讲讲Object.prototype是个什么对象呢?又是谁的实例呢?或者改怎么理解
这个Object.prototye呢?
alert(Object.prototype); //[object Object] console.log(typeof Object.prototype); //object console.log(Object.prototype === null); //false console.log(Object.prototype instanceof Object); //false console.log(Object.prototype instanceof Function); //false
我觉得
Object.prototype是个指针,指向的是Object Prototype对象。
Object Prototype里包含可以由Object类型的所有实例共享的属性和方法。
至于为什么
console.log(Object.prototype instanceof Object); //false
console.log(Object.prototype instanceof Function); //false
就不太清楚了,是不是在alert(Object.prototype); 或者console.log(typeof Object.prototype);的时候做了什么隐士转换呢。
恩恩,你说的我完全赞成,Js是基于对象原型的继承系统,所以所以得对象都继承自Object.prototye。但是深究这个顶级的原型对象:Object.prototye是个什么对象的时候,还是有点迷糊~,感觉还是囫囵吞枣的理解,主要是自己身边也没有特别厉害的人,学习起来特别费劲..
是对象的原型链,这个原型链是指向一个对象的,js特有~~不必解释,就像js只能用var声明变量一样,不用var就算是全局变量,let是ECMA6才有……每个对象都是继承于Object,所以都有prototype属性,值可以改变。
非要解释语言本身的特点是没有意义的。
恩恩,也许你说的是正确的,但是这样稀里糊涂的理解,总是感觉不对劲~