如何证明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);//啥也没有
这是为啥?
幻月D静马
9 years, 4 months ago
Answers
同样的道理
var a = function(){};
var b = a;
b.xx = 123;
console.log(a.xx);
a.xyz = 456;
console.log(b.xyz);
更新:
function hello(){};
var b = hello;
console.log(b.name);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
简单点讲 就是 function 对应的 name 属性不可更改, 不过 IE 不遵守这条规则, 且这条规则是在ES6中提出的, 所以你可以在IE下试试, 就会发现 name 会变的.
雪ノ下・雪乃
answered 9 years, 4 months ago