如何证明js中的function是引用类型?

var obj = {};
var obj2 = obj;
obj.name = 'jason';
console.log(obj);//Object {name: "jason"}
console.log(obj2);//Object {name: "jason"}

上面代码能证明对象是引用类型

那如何证明function呢?

update

我用的是name。。。

  var a = function(){};
  var b = a;
  a.name = 'jason';
  console.log(a.name);//啥也没有
  console.log(b.name);//啥也没有

这是为啥?

阅读 4k
4 个回答

/------------------------------------
题主恰巧选错了属性:

var funcA = function(){};
funcA .name = '123';
console.log(b.name); // 输出'funcA '

这说明function的name属性是只读的,所以证明应该改成这样:

var a = function(){};
var b = a;
a.test = 'test123';
console.log(a.test); //'test123'
console.log(b.test); //'test123'

这岂不是同样的道理,因为function也是对象啊

如果我说所有的js类型都是引用类型(除了nullundefined),你会相信吗?

console.log(a instanceof Object);  // true 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题