자바 스크립트 초보자는이 코드 블록이 의미가 없습니다.Javascript 클래스, 인스턴스화 후이 var에 액세스 할 수있는 이유는 무엇입니까?
function Warrior(n){
var name = n;
this.name = function(n){
if(n) name=n;
return name;
}
}
Warrior.prototype.toString = function(){
return "Hi! my name's "+this.name();
}
왜하지 var name
클래스가 구성되어 직후 죽을 ... 이름 함수를 호출, 문자열 작품 전사의 인스턴스를 사용하거나 PARAMS없이 작동 변환? 왜 그렇게 느껴지나요? vars가 남아 있으면 this
을 사용해야하는 이유는 무엇입니까?
자바 스크립트이므로 –
[Javascript 클로저는 어떻게 작동합니까?] (http://stackoverflow.com/questions/111102/how-do-javascript-closures-work/111200#111200)를 읽어보십시오. 그것은 그것 모두를 설명 할 것이다. – jfriend00
또한'Warrior()'생성자에서'this.name'과'var name'은 완전히 다른 변수입니다. 'var name'은 생성자 함수의 지역 변수이고'this.name'은 새로 생성 된 객체의 속성입니다. – jfriend00