假设我有这段代码:
(function(global) {
function Bar(foo) {
this.foo = foo;
return this;
}
Bar.prototype.getFoo = function() {
return this.foo;
};
Bar.prototype.setFoo = function(val) {
return (this.foo = val);
};
})(this);
创建类似
setFoo
这样的函数,使用prototype
和直接编写有什么不同之处?function Bar(foo) {
this.getFoo = function() {
return this.foo;
};
}
我知道原型是什么以及它的含义,但我无法理解为什么有些人使用原型来分配函数,因为如果我使用this进行分配,那么每次创建Bar的新实例时,它们也将可用。
Bar
实例创建单独的函数。而原型方式只为所有实例创建一个函数。这样可以节省内存。 - freakish