簡體   English   中英

從嵌套函數訪問外部對象(使用backbone.js

[英]Accessing an outer object from a nested function (Using backbone.js

我正在使用backbone.js構建一個js繁重的應用程序。 我遇到的一個問題是如何從深層嵌套函數調用外部對象。 在下面的代碼示例中,我想在發生幻燈片事件時調用custom_function事件。 做這個的最好方式是什么?

App.Views.Category = Backbone.View.extend({
    ....,
    render: function () {

        $('#slider').slider({
            min:0,
            max:100,
            slide: function(event, ui) {
               //HOW DO I CALL THE custom_function from here????

            },

        });
    },

    custom_function: function() {
       alert('in custom function');
    },


});

ASDF

有兩種常見的選擇。

你可以把this變成這樣的對象that也可以self調用它。

render: function () {
    var that = this;
    $('#slider').slider({
        min:0,
        max:100,
        slide: function(event, ui) {
           //HOW DO I CALL THE custom_function from here????
           that.custom_function();
        },

    });
},

或者您可以綁定函數的上下文。

render: function () {
    $('#slider').slider({
        min:0,
        max:100,
        slide: (function(event, ui) {
           //HOW DO I CALL THE custom_function from here????
           this.custom_function();
        }).bind(this),

    });
}, 

Function.prototype.bind僅為ES5,因此使用_.bind$.proxy進行跨瀏覽器支持

暫無
暫無

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

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