Могу ли я сделать свойство Obect вызывать функцию - PullRequest
0 голосов
/ 10 сентября 2018

Могу ли я вызвать такую ​​функцию в объекте? Я попробовал что-то вроде этого, и, кажется, не работает. Я вижу, что я могу поместить функцию в объект. Мне больше интересно сказать, какую функцию следует вызывать.

   

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

obj.func;

1 Ответ

0 голосов
/ 10 сентября 2018

Да, но ваш синтаксис немного отключен.Когда вы создаете свойство, назначенное функции, вы не добавляете (), потому что это вызовет функцию.

Позже, когда вы будете готовы вызвать функцию, хранящуюся в свойстве, вы делаетеиспользуйте (), чтобы вызывать функцию как «метод» объекта.

Суть в том, что в JavaScript мы можем ссылаться на на функциипросто произнося их имя, и мы можем вызывать функции, произнося их имя с последующими скобками.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...