0
콜백 함수를 사용하는 데 익숙하지 않고 특정 UI 요소가 변경 될 때 호출되는 jquery를 통해 위로 연결하려고하는 데 어려움이 있습니다. 이것은 제가하는 일의 매우 단순한 예입니다. 내가 e.SetBorderWidth를 호출하면 10을 함수에 올바르게 전달합니다. 그러나 콜백을 사용하려고하면 SetBorderWidth가 정의되지 않습니다. 왜 어떤 생각을 바꿔야합니까? 감사.javascript 콜백 매개 변수가 정의되지 않았습니다.
자바 스크립트 코드 ----
element = {
border: {
width:0
},
SetBorderWidth : function(newWidth){
this.border.width = newWidth;
}
};
elementChild = function(){
padding: 0
};
elementChild.prototype = element;
var e = new elementChild();
var callback = e.SetBorderWidth;
function SetWidth(){
e.SetBorderWidth(10);
alert(e.border.width);
callback.call(10);
alert(e.border.width);
}
및
<input type="button" onclick="SetWidth();" value="Click" />
누락 된 컨텍스트에 동의하지만 'this'여야합니다. 'SetWidth' 함수 안에서 무엇이 실행 컨텍스트로 전달되어야 하는지를 말하는 것은 정말로 어렵습니다. –
컨텍스트가'this'보다'e' 여야한다고 생각합니다. –
콜백으로 변경 한 다음 this.border.width = newWidth를 e.border.width = newWidth로 변경했습니다. 그게 효과가 있었지만 이것은 내가 바라는 바가 아니 었습니다. 이 개체의 인스턴스에 대한 변수 이름을 알 필요가 없어졌습니다. 이것을 할 또 다른 방법이 있습니까? 감사. –