[英]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()
函數將立即返回。 如果注釋中提到的日志記錄在成功/失敗功能中,那么它將具有正確的值。
奇怪,對我有用:
忽略成功,失敗,超時和無的引號應該可以使它正常工作。
我已經建立了一個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.