Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中作为函数的对象构造函数_Javascript_Oop_Functional Programming - Fatal编程技术网

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

假设我有一个简单的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 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 for
jQuery
;OP正在调用。事实上,它是jQuery或Zepto的
$
别名!