猿问

js 的function为什么可以添加属性

今天在撸代码的时候遇见个问题。就是下面的写法有什么区别?


(1)

function person(){

    this.name = 'Tom';

}

(2)

function person(){}

person.name = 'Tom';

(3)

function person(){}

person.prototype.name = 'Tom'


这3种写法有什么区别?尤其是第二种写法为什么可以直接写person.name。

person是函数。为什么可以像对象一样添加属性?

我应该看什么资料恶补这方面的知识?

前端小白。各位大神指点下。万分感谢。


哆啦的时光机
浏览 1251回答 2
2回答

手掌心

因为Js里面函数也是对象。函数其实也有另一个写法就是a = new Function("return 1");函数也是new出来的,所以函数其实也是一个对象。所以对象可以添加属性。相关知识可以看一下,这一个系列看完应该会有不小的收获,还可以去关注一下new的实际操作。深入理解javascript原型和闭包(2)——函数和对象的关系
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答