有了这个代码:如何在WebStorm的回调函数中记录'this'实例?
function Element() {
this.name = "yay";
}
Element.prototype.extend = function(object) {
if (object instanceof Object) {
for (var n in object) {
if (object.hasOwnProperty(n)) {
this[n] = object[n];
}
}
}
};
var el = new Element();
el.extend({
update: function() {
console.log(this.name);
}
});
我想WebStorm知道update()
this
是Element
的实例,但我真的不知道该怎么做。
我已经达到的最大值是这样的:
el.extend({
/**
* @this Element
*/
update: function() {
console.log(this.name);
}
});
但我并不想这样做,在每extend()
。
也发现了这个:
/**
* @typedef {Object} FunctionExtend
*/
/**
* @param {FunctionExtend} object
*/
Element.prototype.extend = function(object) {
[...]
但我在卡:
- 如何声明
FunctionExtend
有参数不确定的数量。 - 如何判断每个
@parameter
将在不知道参数名称的情况下回调。 - 如何判断回调的
@this
。
这似乎不太可能 - 您如何期望在执行前知道'this'的这个**值(在运行时确定)?如果某人重新绑定了Element.prototype.extend的上下文呢? “this”的值将会改变,从而使文档变得过时。 –
因为是由我自己制作的引擎,我只想避免在IDE中输入以下消息:http://i.imgur.com/FJg6yOh.png,我可以通过以下方式避免此消息:http://i.imgur.com /KjiRSDA.png,但不希望在每个函数中都这样做,所以我在考虑是否有在扩展函数中使用它的方法。 –
我明白了。那么,** a)**你应该问你关心的**真实**问题,即“如何避免webstorm IDE中的___消息?”,以及** b)**也许你应该转向关闭webstorm中的特定检查,以免它妨碍你:) –