javascript - 是否可以将对象初始化为具有属性的函数?
问题描述
是否有可能将对象初始化为具有属性的函数?像这样的东西:
var a = {
() => {
return "I am function!";
},
prop1: "I am property in function object",
prop2: 10
}
alert(a()); // => I am function!
alert(a.prop1); // => I am property in function object
我知道我可以这样做:
var a = () => "I am function!";
a.prop1 = "I am property in function object";
a.prop2 = 10;
我只是想知道这是否可能。
解决方案
不,具有属性(或使对象可调用)的函数没有文字语法。但是,您可以使用Object.assign
将所有内容放在一个语句中:
const a = Object.assign(() => {
return "I am function!";
}, {
prop1: "I am property in function object",
prop2: 10
});
console.log(a()); // => I am function!
console.log(a.prop1); // => I am property in function object
推荐阅读
- python - 继承配置文件上的 Django 信号
- excel - 当我尝试运行以下宏时,Active X 错误 429 无法创建对象
- r - 我们可以通过使用 qqplot(使用 R)找出分布是否遵循幂律分布?
- r - 将因子转换为日期而不产生 NA
- python-3.x - Tensorflow:尽管输入和内核有效,导入的操作总是导致“无”
- css - Bootstrap 主题中的 Alpha 通道和不透明度
- c# - 如何在 c# windows 应用程序中使用 FASTSMS 发送短信
- orm - Eiffel: Recommendation for ORM (Object Relationship Model) design
- angular - Angular 2+ path to static html
- java - GWT 2.7.0 with chrome version 69 not loading java source files