다음은 내 코드입니다:
<script> <br>abc = function(){ <br>this.a; <br>} <br>abc.prototype = { <br>getData:function(){ <br>var c = function(num){ <br>alert(num) <br>this.b = num <br>} <br>c('12345' ); <br>}, <br>clearData:function(){ <br>this.getData() <br>alert(this.b) <br>} <br>} <br>var d = new abc(); <br>d.clearData(); <br></script>
이 부분:
var c = function(num){
alert(num); this.b = num;
}
c('12345');
처음에 정의된 this.b에 얻은 num을 전달하고 싶지만 불가능합니다. 어떻게 쓰는지 모르세요? 현재 형식은 변경할 수 없으며 변경할 수 있는 유일한 것은 c = function(){ here}
다음과 같이 이해될 수 있습니다. 인용문:
function functionName(arg){...} ;
functionName(argvalue); 이 형식의 함수를 사용하는 것은 누구에게나 가장 친숙합니다.
"()"(괄호)는 그 안에 포함된 명령문을 "명사"로 바꿀 수 있습니다. 인용문:
(function(formal 매개변수){function body})는 익명 함수를 괄호로 묶어 코드의 다른 부분에 대한 "명사"와 동일하게 만듭니다.
따라서 참조:
(함수(공식 매개변수){함수 본문})(실제 매개변수)는 위의 가장 일반적인 참조:
함수 이름(실제 매개변수)만큼 이해하기 쉽습니다. 예, 익명 함수를 정의하고 즉시 호출하는 것을 의미합니다. 인용문:
c = (function(which){return function(num){alert(num);which.b = num}})(this)는 익명 함수를 정의하고 즉시 호출합니다. , 반환된 함수에는 c라는 이름이 할당됩니다.
여기서 this 객체는 형식 매개변수 which에 실제 매개변수로 전달되고 abc 인스턴스 객체의 참조는 내부 익명 함수에 제공됩니다.
그래서 c는 abc 인스턴스 객체에 접근할 수 있는 함수가 됩니다.
기술기사 좋아요
이렇게 써도 됩니다