老人常说,在js中,一切皆对象,那对象又是什么涅,最常用的我们都知道,对象有方法和属性。由一些键值对构成的集合,然后随便用个大括号括起来就形成了一个对象。看起来蛮简单的,但是真是这么简单么,当我们新建一个对象,为什么会‘天生’带有 hasOwnProperty
、 toString
这些方法呢?
这其实与JS的继承机制有关,JS中对象是通过原型继承的,实例对象都默默带着一个__proto__属性,这个属性默认指向实例对象的原型对象,当访问实例对象没有的属性或者方法时,js引擎会顺着__proto__查找原型对象是否有该属性或者方法。简单说,就是每个儿子背后都有个强大的粑粑,当儿子想买东东而自己没能力的时候,就会找粑粑‘啃老’,这就是为啥所有的对象都会有 toString
这些方法,真相只有一个,他们有个‘富’粑粑或者耶耶。
没错,就是Object.prototype
了,为啥不是Object涅,敲黑板,Object是构造函数啊童靴们,不信可以在控制台打一下看看。那么问题又来了,Object.prototype
有什么用,都有哪些方法呢。
待续。。
原文:https://www.cnblogs.com/renbo/p/10586577.html