我可以在对象中调用这样的函数吗?我尝试了类似的方法,但似乎无法正常工作。我看到可以将函数放在对象中。我更想知道应该调用哪个函数。
function runFunc() {
console.log("hello");
}
obj = { func: runFunc() };
obj.func;
答案 0 :(得分:1)
是的,但是您的语法有些错误。创建分配给该函数的属性时,不要添加()
,因为那样会调用该函数。
稍后,当您准备调用存储在属性中的函数时,可以使用()
将该函数作为对象的“方法”来调用。
主要要点是,在JavaScript中,我们可以仅说出函数名称而 引用 ,我们可以 调用 < / strong>的功能是说出自己的名字后加上括号。
function runFunc(){
console.log("hello");
}
// Create new object and assign the function to a property
obj= { func: runFunc }; // <-- No parenthesis after function name here
obj.func(); // Call function as a "method" of the object
// Or, combine the above and create the property and assign the function at once
// Notice here that the function is anonymous. Adding a name to it won't throw
// an error, but the name is useless since it will be stored under the name of
// the object property anyway.
obj.otherFunc = function(){ console.log("Hello from other function! ") };
obj.otherFunc(); // <-- Here, we use parenthesis because we want to call the function