2014-02-05 2 views
1

자바 스크립트 함수에서 로컬 변수를 가져오고 설정하는 코드를 작성했습니다. 작동하지 않습니다.자바 스크립트 함수에서 로컬 변수 가져 오기 및 설정

function wrapper() { 
    var x = 10; 
    this.getX = function() { 
     return x; //Return x 
    } 
    this.setX = function (newX) { 
     x = newX; //Set value for x 
    } 
} 

var obj = wrapper(); 

obj.getX(); //Get value of x in wrapper 
obj.setX(25); //Set value of x in wrapper 

외부 코드에서 javascript 함수의 지역 변수를 가져오고 설정하는 방법.

답변

3

생성자 함수로 wrapper을 호출하십시오.

var obj = new wrapper(); 

... this "는 래퍼 인스턴스"가 아니라 "기본 개체, window"이되도록.

생성자 함수의 대문자 이름은 대문자로 지정되므로 모두 프로그램 내에서 wrapper에서 Wrapper으로 변경됩니다.

자세한 내용은 MDN on new을 참조하십시오.

1
var wrapper = { 
    x: 0, 
    getX: function(){ return this.x;}, 
    setX: function(x){this.x=x;} 
} 

var obj = wrapper; 

obj.getX(); //Get value of x in wrapper 
obj.setX(25); //Set value of x in wrapper 
alert(obj.getX()); 

이상 :

function wrapper(){ 
    this.x = 0; 
    this.getX = function(){ return this.x;}; 
    this.setX = function(x){this.x=x;}; 
} 

var obj = new wrapper(); 

obj.getX(); //Get value of x in wrapper 
obj.setX(25); //Set value of x in wrapper 
alert(obj.getX()); 
1

그래, 난 당신이 인스턴스를 생성하기위한 "새"를 할 필요가 있다고 생각한다. 자바 스크립트에는 다른 언어와 마찬가지로 '클래스'라는 키워드가 없습니다. 이것은 "함수"를 사용하는 방법에 달려 있음을 의미합니다. 마치 사용하는 것처럼 사용하면 obj에서 toe 결과를 반환하는 것처럼 사용할 수 있습니다. 클래스 인스턴스로 사용하려면 new로 인스턴스를 만들어야합니다.

관련 문제