首页 > 其他 > 详细

Object是个什么鬼

时间:2019-03-24 00:54:43      阅读:118      评论:0      收藏:0      [点我收藏+]

引言

老人常说,在js中,一切皆对象,那对象又是什么涅,最常用的我们都知道,对象有方法和属性。由一些键值对构成的集合,然后随便用个大括号括起来就形成了一个对象。看起来蛮简单的,但是真是这么简单么,当我们新建一个对象,为什么会‘天生’带有 hasOwnPropertytoString 这些方法呢?

追溯

这其实与JS的继承机制有关,JS中对象是通过原型继承的,实例对象都默默带着一个__proto__属性,这个属性默认指向实例对象的原型对象,当访问实例对象没有的属性或者方法时,js引擎会顺着__proto__查找原型对象是否有该属性或者方法。简单说,就是每个儿子背后都有个强大的粑粑,当儿子想买东东而自己没能力的时候,就会找粑粑‘啃老’,这就是为啥所有的对象都会有 toString这些方法,真相只有一个,他们有个‘富’粑粑或者耶耶。

原型

没错,就是Object.prototype了,为啥不是Object涅,敲黑板,Object是构造函数啊童靴们,不信可以在控制台打一下看看。那么问题又来了,Object.prototype有什么用,都有哪些方法呢。

  1. hasOwnProperty() 检查是否存在一个给定名字的自有属性
  2. valueOf() 返回一个对象的值表达
  3. toString() 返回一个对象的字符串表达

待续。。

参考

Object是个什么鬼

原文:https://www.cnblogs.com/renbo/p/10586577.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!