前言:
当前看官们对“jsproto”大体比较着重,小伙伴们都想要了解一些“jsproto”的相关内容。那么小编同时在网络上汇集了一些关于“jsproto””的相关知识,希望姐妹们能喜欢,我们一起来了解一下吧!var obj = {}
// 等价于 var obj = new Object()
// object.__proto__ === Object.prototype
obj.toString()
// 创建一个新的Object ,即 变量obj
// obj 变量指向一个空对象,这个空对象有个 __proto__ 属性指向 window.Object.prototype。
prototype 指向一块内存,这个内存里面有共用属性
__proto__ 指向同一块内存
prototype 和 __proto__ 的不同点在于:
prototype 是构造函数的属性,而 __proto__ 是对象的属性
难点在于……构造函数也是对象!
如果没有 prototype,那么共用属性就没有立足之地
如果没有 __proto__,那么一个对象就不知道自己的共用属性有哪些。
// 创建一个对象
var object = {}
// 对象的原型 = 对象的原型
object.__proto__ === Object.prototype
// 创建一个函数
var fn = function () { }
// 函数的原型 = 函数的原型
fn.__proto__ === Function.prototype
// 函数的原型的原型 = 对象的原型
// 函数的原型=对象 对象的原型 = 对象的原型
fn.__proto__.__proto__ === Object.prototype
每个对象都有原型
对象的原型也是对象
原型的原型 = null
只要是函数对象,构造函数就是Function,包括(window.Object)
以上仅为个人观点,若有理解错误,欢迎指出一起学习~
标签: #jsproto