学生问了一个问题,整理一下,供大家参考:
老师你好,请教个问题:
在js中 定义一个类
function hell(){
}
然后添加方法:
1 、hell.prototype.add = function(){}
2、hell.add = function(){}
1和2 这两种方法有什么区别?
我的回复:
概念性的东西我就不贴了,感兴趣的同学百度一下就能找到js官方对于prototype的解释。
prototype从字面上来理解是原型的意思,也就是说,如果你实例化hell(new hell()),实例化之后的对象调用add方法,调用的就是hell.prototype.add,而hell.add相当于一个静态方法(这个比喻不一定恰当),不需要实例化,直接调用hell.add()就能访问到。我根据你的定义,写了一个例子,你可以参考一下。
当然这个例子可以继续扩充一下,看看实例化之后,更改了hell.prototype.add会有什么结果,这样就能更好的理解prototype,就能清楚什么时候使用prototype,什么时候不用prototype了。