我正在创建一种机制,而我可以使用 jquery 通过 AJAX 访问给定的资源(用户、帖子等),并且它可以工作,但我希望能够使用 this
关键字,而不是例如 Resource.active_filters
,所以我会编写 this.active_filters
(参见代码)。但是,当我这样使用它时,它引用的是 methods
对象,而不是 Resource
对象。如何使其引用 Resource
对象?
这是代码:
var Resource = {
options: {},
active_filters: [],
ready_filters: [],
ready_count: 0,
group_items: [],
init: function () {},
methods: {
reset: function () {
Resource.active_filters = [];
Resource.ready_filters = [];
Resource.ready_count = 0;
},
},
bindEvents: function () {}
};
最佳答案
这就是绑定(bind)的方式,除非您定义 ES6 样式的类或在顶层定义该函数。
你总是可以写一个经典的类:
function Resource() {
// ...
}
Resource.prototype.reset = function() {
this.active_filters = [ ];
// ...
}
或者你可以定义一个 ES6 的:
class Resource {
reset() {
this.active_filters = [ ];
// ...
}
}
这两种风格比您问题中的方法更为传统。
关于javascript - 如何在对象文字中使用 `this`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47021824/