我承认我在徘徊,将不同作者的代码拼凑在一起,试图找出javascript原型。使用原型模式在JavaScript类中保存实例值
我是新来的原型概念,并希望我的类中有一些实例变量可以使用方法修改。
这是我正在尝试的,实质上。这是和那儿剽窃从网上修改:
var MyGlobe = function() {
var self = this;
self.variable1 = null;
return self;
}
MyGlobe.prototype = function() {
var setup = function() {
this.variable1 = 33;
};
return {
setup:setup
};
}();
...的所有的点,所以我可以调用的MyGlobe
实例的setup
方法和设置variable1
正确:
var aGlobe = new MyGlobe();
aGlobe.setup();
//aGlobe.variable1 is 33 now
这实际上似乎工作,但我不知道为什么原作者这样做的东西?例如,开头的self.variable1
位有什么意义?
它是最好打字:
MyGlobe.prototype.variable1;
MyGlobe.prototype.variable2;
//....
我还以为你会做这样的事情self=this
,如果你认为你的类将在例如一个回调函数中使用,但不会出现在这里的情况? (高兴地显示错误。)
我不确定最佳做法是什么在这里,想知道更多。
是的,围绕此代码有很多不必要的东西。要么它在修改之前是有意义的,要么你不应该像这样使用它:-) – Bergi 2013-03-24 23:19:46
“*是否最好输入'MyGlobe.prototype.variable1;'*” - 究竟是什么?如果你指的是'self.variable1',它们就不一样了。 – Bergi 2013-03-24 23:22:25
我的意思是'最好输出...' - 在构造函数中声明实例变量('self.variable1')更好,而不是将它们添加到原型中。 – larryq 2013-03-25 01:03:35