我正在尝试从selectable对象中的函数内部访问selectItems数组,但不确定是否有一种方法可以将_Multiselect对象作为参数传递回函数中。还有其他方法吗?

function _MultiSelect() {
}
_MultiSelect.prototype = {

    selectedItems: [],

    selectable: {

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

最佳答案

一种选择是使selectable一个函数返回一个包含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();

10-07 23:30