【问题标题】:Get parent object within jQuery callbacks在 jQuery 回调中获取父对象
【发布时间】:2012-01-03 02:18:52
【问题描述】:

这是我的问题:

var greatapp = {
  start : function(){
    $.AJAX({
      url : 'foo.com',
      success : function(data){
        greatapp.say(data);
      }
    })
  },

  say : function(s){
    console.log(s);
  }
}

我不喜欢这个例子的事实是,我在 success 函数中通过定义对象的名称而不是 this 来重复我自己,这显然行不通,因为它在一个 外部函数。

如何在 JS 对象中只有一次名称 greatapp

【问题讨论】:

标签: javascript


【解决方案1】:

一个常见的 JavaScript 习惯用法是将 this 的值保存到像 meself 这样的变量中,并在回调中使用 that

这将起作用,因为回调可以访问在封闭范围中声明的变量 - 换句话说,回调将在 self 上形成一个闭包

var greatapp = {
  start : function(){
    var self = this;
    $.AJAX({
      url : 'foo.com',
      success : function(data){
        self.say(data);
      }
    })
  },

  say : function(s){
    console.log(s);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2014-12-11
    • 2022-11-22
    • 1970-01-01
    相关资源
    最近更新 更多