자바 스크립트 프레임 워크를 만들고 있는데 아래 코드는 어떤 이유로 작동하지 않습니다. 이유가 뭐야?함수에서 인수를 함수로 전달할 때 private 함수를 호출합니까?
function jCamp(code){
function test(){
alert();
}
code();
}
jCamp(function(){
test();
});
자바 스크립트 프레임 워크를 만들고 있는데 아래 코드는 어떤 이유로 작동하지 않습니다. 이유가 뭐야?함수에서 인수를 함수로 전달할 때 private 함수를 호출합니까?
function jCamp(code){
function test(){
alert();
}
code();
}
jCamp(function(){
test();
});
당신은 전화 또는 appy 수와 범위를 변경할 수 있습니다
function jCamp(code){
function test(){
alert();
}
code.call(test);
}
jCamp(function(){
this();
});
그래서 우리는 개인 기능을
테스트() JCAMP()가 정의되지 않은 (당신은 당신의 코드를 변경하지 않을 경우 그 라인 8의 하나)에 인수되는 익명 함수 내에서 호출을. 함수 test()은 jCamp()의 정의 내에서만 정의됩니다.
그렇다면 어쨌든 jCamp()의 인수 함수를 통해서만 함수를 호출 할 수 있습니까? –
function jCamp(code){
this.test = function(){
alert("test");
}
code();
}
jCamp(function(){
this.test();
});
를 참조 this
을 변경 내가 이런 식으로 할 것이다.
test
은 jCamp
에서만 사용할 수있는 전용 기능입니다. 인수로 전달 된 익명의 함수에서 호출 할 수 없습니다. 이처럼, 비록 속성 할 수 있습니다 : 그것은 그것이라고하지를 만들 때
function jCamp(code){
this.test = function(){
alert();
}
code();
}
jCamp(function(){
this.test();
});
'this'가'window'이므로 실제로'test'가 전역 적으로 저장된다는 것을주의하십시오. – delnan
함수의 범위가 결정된다.
그랬습니다. 고마워! –