首页 > 解决方案 > 是否可以将对象初始化为具有属性的函数?

问题描述

是否有可能将对象初始化为具有属性的函数?像这样的东西:

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;

我只是想知道这是否可能。

标签: javascript

解决方案


不,具有属性(或使对象可调用)的函数没有文字语法。但是,您可以使用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

推荐阅读