functionfn(){this.say=function(){}}fn.prototype.say=function(){}这两种方式有什么区别呢,具体一点
2 回答

米脂
TA贡献1836条经验 获得超3个赞
在构造函数中创建的每个方法,都要在每个实例上重新创建一遍,也就是说不同实例上的同名函数是不相等的,无法实现函数复用,而在原型上的方法是被所有实例所共享的。可以了解一下JavaScript中的继承。

慕的地8271018
TA贡献1796条经验 获得超4个赞
这样理解吧如果把say函数在fn构造函数里声明的话所有fn的实例都会占一份say的内存如果是通过prototype这是占用一份内存在fn.prototype上
添加回答
举报
0/150
提交
取消