javascript - 窗口的主干范围而不是这个

标签 javascript backbone.js scope

为什么这个日志记录为窗口而不是 Backbone 对象?

App.Models.Site = Backbone.Model.extend({
    url: 'assets/json/app.json',

    initialize: function(){
        this.fetch({success:this.success});
    },

    success: function(){
        console.log('success', this.attributes); // log's: success undefined
        console.log(this); // window
    }
});

最佳答案

因为该函数由 jQuery(或您使用的任何 DOM 库)ajax 函数调用。

使用 this.fetch({success:_.bind(this.success, this)});

关于javascript - 窗口的主干范围而不是这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14936869/

相关文章:

Javascript 将数组返回到返回函数数组的索引[0]

backbone.js - 我应该使用哪一个? Backbone.js Router.navigate 和 window.location.hash

sql - 根据另一个表中的条件选择一个表中的记录

javascript - 在 Angular 2/TypeScript 中将 pdfMake 与数据输入一起使用

javascript - flickr.auth.getToken 签名无效

javascript - 如何检查字符串是否包含字符和空格,而不仅仅是空格?

javascript - clearTimeout 动态更新定时器

javascript - Backbone.js 中的模型与 View

c++ - 需要::为函数指定类而不是变量吗?

c# - 当前上下文中不存在名称 "shape"