簡體   English   中英

無法從實例名稱調用返回的方法

[英]Not able to call returned method from instance name

在下面的代碼,我不能叫job1job2正在由返回jobContainer

// Code goes here

var jobContainer = function() {

  var count = 0;

  var task1 = function() {
    count += 1;
    console.log("inside task1 " + count);
  };

  var task2 = function() {
    count += 1;
    console.log("inside task2 " + count);
  };

  return {
    job1: task1(),
    job2: task2()
  };

};

var tasker = jobContainer();
tasker.job1 // not working
tasker.job2 // not working
tasker.job2 // not working

輸出:

inside task1 1
inside task2 2

謝謝

退貨不正確

 // Code goes here var jobContainer = function() { var count = 0; var task1 = function() { count += 1; console.log("inside task1 " + count); }; var task2 = function() { count += 1; console.log("inside task2 " + count); }; return { job1: task1, job2: task2 }; }; var tasker = jobContainer(); tasker.job1() tasker.job2() tasker.job2() 

執行你的返回結果task1task2而不是功能,從而取代:

return {
  job1: task1(),
  job2: task2()
};

return {
  job1: task1,
  job2: task2
};
var tasker = jobContainer();
tasker.job1() // inside task1 1
tasker.job2() // inside task2 2
tasker.job2() // inside task2 3

祝好運 !

return {
    job1: task1(),
    job2: task2()
};

問題是,如果我了解您要正確執行的操作,那么您將構造返回對象之前調用函數。 我猜您的意圖是返回函數本身,而不是返回值。

將上面的代碼更改為(注意未調用函數):

return {
    job1: task1,
    job2: task2
  };

然后將第二位更改為:

var tasker = jobContainer();
tasker.job1()
tasker.job2()
tasker.job2()

請注意,我們現在正在調用函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM