将参数传递给使用 JavaScript 中的 new 通过内联调用创建的对象
Passing parameter to object created with inline invocation using new in JavaScript
请原谅问题标题;我找不到更好的表达方式。
我在阅读 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
关键字创建它的实例来做到这一点,如下所示:
var Apple = function(color) {
this.type = "macintosh";
this.color = color;
}
var redApple = new Apple("red");
相关文章:
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 为什么要使用立即调用的函数来创建新对象
- 正在创建网页,并希望将外部链接调用为html和css
- 调用在同一视图中使用javascript在视图中创建的函数
- Magento创建自定义的职业表格,并从CMS页面调用
- 如何在新创建的模块中从Odoo v8中的Javascript文件中调用python函数
- 调用函数和创建函数实例之间的Javascript差异
- 在创建对象时调用javascript函数
- 创建按钮不调用表单内的任何操作
- 查找与通过两次调用地理编码创建的两个 latlng 对象的距离
- 使用 jQuery 对动态创建的元素调用自定义函数
- 如何调用一个函数,其名称是通过在node.js中组合一些变量来动态创建的
- 如何运行一个调用某个函数的函数首先完成它,然后再调用下一个函数.正在创建回调函数
- 使用动态函数调用创建 JS 库
- 我可以通过jQuery调用创建非自闭合标签吗?
- 从 ajax php 调用创建 2D JavaScript 数组
- 如何为XMLHttpRequest调用创建实用程序函数
- Jquery函数调用/创建问题
- 从两个JSON调用创建2D数组,然后打乱它
- 如何确定对象是使用对象文字还是使用对象构造函数调用创建的