从嵌套函数访问外部对象(使用主干.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');
},
});
非洲自卫队
有两个常见的选项。
您可以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
进行跨浏览器支持
相关文章:
- 查看JS对象的所有键,甚至是getter定义的键
- 在URL中传递JS对象
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- JS对象密钥序列
- 在ajax调用中阻止来自JS对象的函数
- 属性未添加到JS对象
- 将字符串转换为JS对象
- 使用lodash查找具有truthy值的JS对象的属性
- 将toString方法暴露给nashorn中的js对象
- JSON数组转换为JS对象数组
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- 以非ajax方式将js对象传递给mvc操作
- JS对象->来自jquery ajax的JSON提交->php迭代
- XMLHttpRequest发送JS对象
- 使用游标循环将JS对象添加到数组中
- 动态(重新)创建iframe内容不会重置Chrome中的JS对象
- 将JS对象数组转换为嵌套形式的最有效方法
- 在知道对象值的情况下,确定数组中JS对象的索引
- JS对象文字中的方法和子方法