为什么直接将方法赋值给对象不改变对象的引用?

c = {};
c = function(){console.log(444)};
c.g = 4

clipboard.png
为什么直接将方法赋值给对象后,再为对象添加属性还可以?引用没变吗?很奇怪### 题目描述

题目来源及自己的思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 2.5k
3 个回答

Function 本来就是引用对象 为什么不能添加属性

var c = function(a, b){};
c.g = 4;
console.log(c.length)//2
console.log(c.g)//4

引用发生了变化。只是函数也是对象,给对象添加一个c属性当然是可以的;同理,你也可以给一个数组添加c属性

不知道js里面万物皆对象吗,你不用第一步直接声明个函数再加属性结果也是一样

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏