이 코드를 갖는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) ** 당신이 걱정해야하는 ** 진짜 ** 질문, 즉 "웹 스톰 IDE에서 ___ 메시지를 피하는 방법", 그리고 ** b) ** 아마 당신은 그 특정 검사를 Webstorm에서 막아서 당신을 괴롭히지 않게하십시오 :) –