构造函数里的方法
function Fun1(arg) {
this.arg = arg;
this.test = function(){
return this.arg;
}
}
函数内的方法相当于是函数的私有变量,如果新创建的对象需要使用里面的私有变量,就使用函数内的方法。
原型链上的方法
function Fun2(arg) {
this.arg = arg;
}
Fun2.prototype.test = function() {
return this.arg;
}
当我们需要通过一个函数创建大量的方法的时候,使用prototype上创建方法
两者的区别
1.方法所处的位置不相同,构造函数内的方法就在构造函数内,prototype上的方法在原型链上
2.使用prototype的方法在继承的时候是共有的,多个继承对象共有这个方法,所以一旦改变,所有的都改变
3.prototype上的变量和方法是不被序列化的