1.使用new Function() 可以定义一个函数,同时也是一个对象。既然是对象就一定可以设置属性和值。可是我发现新建的对象中name属性的值不返回任何数据,这是为什么呢?
代码如下:
var obj = new Function();
console.log(obj instanceof Object);//返回true ,确定是一个对象
obj.name= "zhangwuji";
obj.age = "18";
console.log(obj.age);// 返回18 ,确定添加属性成功
console.log(obj.abc);// 返回undefined 没有定义这个属性
console.log(obj.name);// 没有任何输出?
console.log(Object.keys(obj));// 查看obj 的属性,只有age ,但是与上一行相隔一个空白行
求解!谢谢~
雷猴,
new Funticon(),出来的属于匿名函数
当你console.log(obj.name)时,其实并不是没有输出,而是打印了anonymous(匿名)
在function类型的对象中name属于不可被复写的属性,可以直接输出=>函数本身名称
如:
function doSomething() {}
doSomething.name; // "doSomething"
详情可以查看
https://developer.mozilla.org...
所以当你对name进行赋值时,是失败的。