我们使用这种结构模拟 JavaScript 中的类:
OurApplication.TableViewer = Class.extend ({
init: function() {},
viewLogic: function() {},
logLogic: function() {}
}
Class.extend 是一个像构造函数一样运行“init”的函数,并且以某种类似于 Java 的方式模拟类。我认为这类似于 Crockford 所说的“经典继承”,而且这种通用方法(如果不是确切的语法)似乎有点常用/推荐,所以我希望它没有争议。
我的问题是,“类”的全局数据应该如何最好地在同一个“类”内的函数之间传递;
方法一:
OurApplication.TableViewer = Class.extend ({
init: function() {
this.foo = 'bar';
viewLogic();
logLogic();
},
viewLogic: function() {
document.write(this.foo);
},
logLogic: function() {
console.log(this.foo);
}
}
方法B:
OurApplication.TableViewer = Class.extend ({
init: function() {
viewLogic('bar');
logLogic('bar');
},
viewLogic: function(foo) {
document.write(foo);
}
logLogic: function(foo) {
console.log(foo);
}
}
我找不到很多,但我确实找到了这篇我认为是相同主题但针对 Java 的帖子。我会说它几乎不支持“方法A”,但一点也不清楚。
显然,在某些情况下,将数据作为参数传递是有意义的(例如,在每次传递的值都会更改的循环内;您可以每次将 'this.foo' 更改为新值,但这似乎很尴尬) .
任何意见/见解表示赞赏。