繁体   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