【发布时间】:2015-11-30 23:26:36
【问题描述】:
对不起,我不知道这个名字。
我想要一个函数和一个对象,其属性只存在一个变量中。
这是它的工作原理:
var obj = function() {
return "foo";
};
obj.prop = "bar";
obj(); // => "foo"
obj.prop; // => "bar"
这工作正常,但我想改变这个顺序:
var obj = { prop: "bar" };
obj = function() {
return "foo";
};
obj(); // => "foo"
obj.prop; // => undefined
有没有办法做到这一点?
我想这样做是因为我有很多属性要添加到对象中:
var obj = function() {
return "foo";
};
obj.prop1 = "bar1";
obj.prop2 = "bar2";
obj.prop3 = "bar3";
obj.prop4 = "bar4";
obj.prop5 = "bar5";
obj.prop6 = "bar6";
obj.prop7 = "bar7";
//...
【问题讨论】:
-
从技术上讲,你可以,但它会比你这里的代码多得多。为了简单地做到这一点,我同意@Grundy。你不能。
-
@aaronfrost 什么意思,先定义属性(在创建函数之前),然后再将它们复制到函数对象中?
-
@Martin 查看我的更新答案(回答您更新的问题)。
-
@torazaburo,就像下面的答案一样。你能行的。但是,它需要代码来完成。
-
@torazaburo 你说得对,我应该这样做,但就像你在另一条评论中所说的那样,这没关系,因为我只想分配大约 20 个属性。
标签: javascript function object javascript-objects