今天在撸代码的时候遇见个问题。就是下面的写法有什么区别?(1)function person(){ this.name = 'Tom';}(2)function person(){}person.name = 'Tom';(3)function person(){}person.prototype.name = 'Tom'这3种写法有什么区别?尤其是第二种写法为什么可以直接写person.name。person是函数。为什么可以像对象一样添加属性?我应该看什么资料恶补这方面的知识?前端小白。各位大神指点下。万分感谢。
2 回答

手掌心
TA贡献1942条经验 获得超3个赞
因为Js里面函数也是对象。
函数其实也有另一个写法就是
a = new Function("return 1");
函数也是new出来的,所以函数其实也是一个对象。所以对象可以添加属性。
相关知识可以看一下,这一个系列看完应该会有不小的收获,还可以去关注一下new的实际操作。
深入理解javascript原型和闭包(2)——函数和对象的关系
添加回答
举报
0/150
提交
取消