Javascript中作为函数的对象构造函数
假设我有一个简单的Javascript对象:Javascript中作为函数的对象构造函数,javascript,oop,functional-programming,Javascript,Oop,Functional Programming,假设我有一个简单的Javascript对象: var Thing = function (data) { this.data = data; } 有没有一种较短的方法来做以下事情 var makeThing = function(data) { return new Thing(data); }; var things = $.map(array, makeThing); 我能看到的最短的是 var things = $.map(data, function(x) { return
var Thing = function (data) {
this.data = data;
}
有没有一种较短的方法来做以下事情
var makeThing = function(data) { return new Thing(data); };
var things = $.map(array, makeThing);
我能看到的最短的是
var things = $.map(data, function(x) { return new Thing(x); })
作为一个微不足道的压缩
如果你确定你可以做新的JS
var things = data.map(function(x) { return new Thing(x); })
更短。但是否可以将对象的构造函数作为函数引用?类似于:
data.map(Thing.constructor)
Thing
是构造函数。但是,如果没有此选项,您将无法从中获取新对象。JavaScript在这方面的工作方式有点像Objective C——当您执行[[Thing alloc]init]
时,有两个不同的函数用于分配和初始化对象<代码>新建正在分配新对象<代码>东西正在设置它(被称为“构造函数”)。您可以对任何对象调用“构造函数”,但它只会在现有对象上附加额外属性。@RobG:我强烈怀疑alias forjQuery
;OP正在调用。事实上,它是jQuery或Zepto的$
别名!