请原谅问题标题;我找不到更好的表达方式。
我在阅读 Addy Osmani 的 JavaScript 设计模式时偶然发现了这篇文章。除了在 JavaScript 中表示类的 2 种常见方法(即使用函数和对象字面量)之外,作者还给出了一个将两者结合起来的示例,看起来像是内联调用。到目前为止一切顺利,除了我不能将参数传递给构造函数:
var apple = new function() {
this.type = "macintosh";
this.color = "red";
this.getInfo = function () {
return this.color + ' ' + this.type + ' apple';
};
}
// can't do new function("red") obviously
我想了一个解决问题的方法
var apple = (function(color) {
this.type = "macintosh";
this.color = color;
this.getInfo = function () {
return this.color + ' ' + this.type + ' apple';
};
return this;
})("red");
但这似乎有点令人费解,我更喜欢使用“new”,这与John Resig 讨论的这个问题有关。由于我返回了对该对象的引用,它仍然可以工作,但看起来非常难看。在这种情况下,无论如何我仍然可以将new运算符与构造函数的参数一起使用吗?