Javascript 是否可以将对象初始化为具有属性的函数?

Javascript 是否可以将对象初始化为具有属性的函数?,javascript,Javascript,是否有可能将对象初始化为具有属性的函数? 有人这样想: var a={ () => { 返回“我是函数!”; }, prop1:“我是函数对象中的属性”, prop2:10 } 警报(a());//=>我是功能! 警报(a.prop1);//=>我是函数对象中的属性 我知道我可以这样做: 我只是想知道这是否可能。不,不可能。创建具有内部[[call]]属性的对象的唯一方法是函数文本或通过类/对象方法声明。否,对于具有属性的函数(或使对象可调用)没有文本语法。但是,您可以使用将所有内容放在一条

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

var a={
() => {
返回“我是函数!”;
},
prop1:“我是函数对象中的属性”,
prop2:10
}
警报(a());//=>我是功能!
警报(a.prop1);//=>我是函数对象中的属性
我知道我可以这样做:


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

不,不可能。创建具有内部
[[call]]
属性的对象的唯一方法是函数文本或通过类/对象方法声明。

否,对于具有属性的函数(或使对象可调用)没有文本语法。但是,您可以使用将所有内容放在一条语句中:

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

不能将普通对象转换为函数,但可以将函数视为对象并向其添加任意属性。
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