>  기사  >  웹 프론트엔드  >  js 객체 외부 액세스 또는 문제 호출_javascript 기술

js 객체 외부 액세스 또는 문제 호출_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:58:201183검색

다음은 내 코드입니다:

<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 인스턴스 객체에 접근할 수 있는 함수가 됩니다.
기술기사 좋아요
이렇게 써도 됩니다



[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다. ]
사용 바인딩 방법

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.