我试图从可选对象中的函数内部访问selectItems数组,但不确定是否有办法在不将_Multiselect对象作为参数传递回函数的情况下执行此操作。还有其他方法吗?
function _MultiSelect() {
}
_MultiSelect.prototype = {
selectedItems: [],
selectable: {
myFunc: function(){
//how can I access selectedItems from here
}
}
}
答案 0 :(得分:2)
一个选项是使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
}
}
}
}
USECASE:
(new _MultiSelect).selectable().myFunc();
答案 1 :(得分:1)
您可以在其中存储此上下文,请参阅以下代码
_MultiSelect.prototype = {
selectedItems: [],
selectable: function() {
// store the context of this in that
var that = this;
return {
myFunc: function(){
// is accessible
console.log(that.selectedItems);
}
}
}
}