javascript - jQuery:如何从匿名函数内部访问父函数 "this"?

标签 javascript jquery

...
$.fn.annotateEdit = function(image, note) {
    if (note) {
        this.note = note;
    } else {
        var newNote = new Object();
        newNote.id = "new";
        this.note = newNote;
    }
}
...
var mynote = this.note;

form.find(':radio').change(function() {
    var vacancy = $(this).attr('value');
    mynote.vacancy = vacancy;
});
...

是否可以在不定义“mynote”的情况下从change()处理程序访问“this.note”?

最佳答案

我使用这样的模式,这样我就可以访问封闭范围内的任何内容:

var that = this;
...

form.find(':radio').change(function () {
    that.note.vacancy = $(this).attr('value');
});

我很喜欢这种模式,因为它使代码更具可读性。在我看来,很明显它所访问的内容是封闭范围的一部分(只要 that 的用法保持一致)。

关于javascript - jQuery:如何从匿名函数内部访问父函数 "this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150676/

相关文章:

javascript - 使用 jquery 进行 url 重定向的输入文本框

java - 从 Google Chrome 的开发者工具获取信息

jquery - 在 twitter bootstrap 模态表单中未触发 keyup 事件

javascript - Div 元素充当背景

javascript - 如何在 JavaScript 响应中使用 image_tag?

javascript - 如何使用变量作为 json 属性?

javascript - 全局 $.ajaxSetup() 调用不会影响单独函数中的 $.ajax() 调用吗?

javascript - 编写可重复使用的代码来创建一个递增的类似按钮

javascript - 使用 $routeParam 从服务加载数据

javascript - 以 Angular 2 设置路线