javascript - 访问父作用域中的变量

标签 javascript

我试图从可选择对象的函数内部访问 selectItems 数组,但不确定是否有办法在不将 _Multiselect 对象作为参数传递回函数的情况下执行此操作。还有其他方法吗?

function _MultiSelect() {
}
_MultiSelect.prototype = {

    selectedItems: [],

    selectable: {

        myFunc: function(){
            //how can I access selectedItems from here
        }
    }
}

最佳答案

一种选择是使可选择一个函数,该函数返回一个包含myFunc和其他内容的对象。这允许您捕获闭包中的 _MultiSelect 上下文,并在您公开的方法中使用它。

_MultiSelect.prototype = {

    selectedItems: [],

    selectable: function() {
       var context = this;
       return {
          myFunc: function(){
            console.log(context.selectedItems);
            //how can I access selectedItems from here
          }
       }
    }
}

用例:

(new _MultiSelect).selectable().myFunc();

关于javascript - 访问父作用域中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491304/

相关文章:

javascript - underscore.js _.every() 和 _.some() 没有回调

javascript - 如何从 v8 shell 运行外部 javascript 文件?

javascript - knockout : extending mapping to complex JSON

javascript - Express 不断获取 request.body 作为未定义的 JSON 对象

javascript - 如何将 html 标签 id 转换为 php 字符串

javascript - 使用 MongoDB 从 AJAX 调用接收 JSON

javascript - 如何在静态博客网站上使用下拉菜单按年和月一起添加过滤器?

javascript - XSLT 在 IF 语句后添加书价

javascript - 如何将此 javascript 转换为 JSON

javascript - IE Popup 定位问题与 Javascript referrer hack