我的backbone.js 视图中的大多数函数都以开头,var that = this;
因为在一些jQuery 辅助函数内部this
不再引用主干视图。请参见下面虚拟样本中的第 08 行和第 14 行。
01. var WhateverView = Backbone.View.extend({
02. el: '#foo',
03. fooText: 'test',
04. fooArray: [1, 2, 3],
05. ajax1: function() { ... },
06. ajax2: function() { ... },
07. render: function() {
08. var that = this;
09. $.when(this.ajax1(), this.ajax2()).done(function(a1, a2) {
10. that.renderPage(a1, a2);
11. });
12. },
13. renderPage: function(a1, a2) {
14. var that = this;
15. $.each(this.fooArray, function(i) {
16. alert(that.fooText);
17. });
18. }
19. });
骨干网(或一般的javascript)有没有办法避免这种情况?