簡體   English   中英

JavaScript-使用對象和方法?

[英]JavaScript - using objects and methods?

當我調用方法getResult它返回一個未定義的值。 我究竟做錯了什么?

var MyObjectResult = {"Success":1, "Fail":2, "Timeout":3, "None":4}

function MyObject()
{
   this.result = MyObjectResult.None;
   this.timout = 15;

   this.getResult = function ()
   {
      // Some calculation here and changing result
      // Logging (this.result shows that result has value of 1)
      this.result = MyObjectResult.Success;
      return this.result;
   }
}

var myObject = new MyObject();
var result = myObject.getResult();
// result is undefined

我發現發布的代碼沒有問題,所以我將猜測一下您未顯示的代碼中的內容:

缺少的計算代碼是否正在執行ajax請求(或其他異步處理)並在成功函數中設置this.result 如果是這樣,則在您的aysnc處理運行其成功或失敗函數以更新this.result之前, getResult()函數將立即返回。 如果注釋中提到的日志記錄在成功/失敗功能中,那么它將具有正確的值。

奇怪,對我有用:

http://jsfiddle.net/y5Yk7/

忽略成功,失敗,超時和無的引號應該可以使它正常工作。

我已經建立了一個JSFiddle示例 對我來說一切正常。

也許“這”在您的功能中可能有不同的含義? 所以:

var MyObjectResult = {"Success":1, "Fail":2, "Timeout":3, "None":4}

function MyObject()
{
   this.result = MyObjectResult.None;
   this.timout = 15;
   var mythis = this;
   this.getResult = function ()
   {
      mythis.result = MyObjectResult.Success;
      return mythis.result;
    }
}

var myObject = new MyObject();
var result = myObject.getResult();

暫無
暫無

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

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