搞清javascript中Object与Function的关系

Function与Object到底是什么关系呢?我们先使用instanceof进行判断一下:

使用instanceof判断

???

What?是不是感觉心中一万头草泥马奔过呢?为什Function在Object的原型链上,而Object又在Function的原型链上?下面一张图帮你理清它们的关系:

每个对象都会有一个原型,就是[[prototype]],在ES规范里该属性是隐藏的,但在浏览器中则以__proto__的形式暴露出来。我们现在来解释一下上面的关系:

  1. 所有函数都是Function函数的实例,而Object是一个构造函数,所以Object的原型,也就是Object.__proto__指向Function.prototype
  2. 由于Function本身也是一个函数,所以Function.__proto__指向Function.prototype
  3. 由于Function.prototype是一个对象,所以Function.prototype.__proto__指向Object.prototype
  4. Object.prototype.__proto__永远指向null

下面我们来验证一下上述结论:

现在你明白为什么Function instanceof Object 及Object instanceof Function的返回值都为true了吗?尝试用上面的结论来解释下吧!另外,满意的话就随手点个赞吧,o(* ̄▽ ̄*)ブ!

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript object转list可以采用以下方法: 1. 使用JSON.parse()方法将JSON对象转换为JavaScript对象。例如,给定JSON字符串`'{"a": "Hello", "b": "World"}'`,可以使用以下代码将其转换为JavaScript对象: ``` var obj = JSON.parse('{"a": "Hello", "b": "World"}'); ``` 2. 使用Object.keys()方法获取JavaScript对象的所有键,并将其存储在一个数组。例如,给定上面转换得到的JavaScript对象,可以使用以下代码获取键的数组: ``` var keys = Object.keys(obj); ``` 3. 如果需要将键值对作为对象保存在列表,可以使用Array.map()方法。例如,给定上面的JavaScript对象和键的数组,可以使用以下代码将键值对作为对象保存在列表: ``` var list = keys.map(function(key) { return {key: key, value: obj[key]}; }); ``` 这将生成一个包含键值对对象的列表,其每个对象具有`key`和`value`属性。 注意:上述代码是使用JavaScript语言进行示例,具体实现可能根据使用的编程语言和库而有所不同。例如,如果使用的是Jackson库进行JSON处理,可以使用该库提供的相应方法进行转换。123 #### 引用[.reference_title] - *1* *2* [JSON: JavaScript Object Notation(JavaScript 对象表示法)](https://blog.csdn.net/weixin_44153521/article/details/123428151)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [关于 JavaScript Object.keys() 排序问题的探索与总结](https://blog.csdn.net/xgangzai/article/details/116112851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值