我可以使Obect属性调用函数吗

时间:2018-09-10 18:57:35

标签: javascript object

我可以在对象中调用这样的函数吗?我尝试了类似的方法,但似乎无法正常工作。我看到可以将函数放在对象中。我更想知道应该调用哪个函数。

   

function runFunc() {
  console.log("hello");
}
obj = { func: runFunc() };

obj.func;

1 个答案:

答案 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