2011-01-11 4 views
-2
var objectTest= 
{ 
    test1: function() 
    { 
     val1 = 1; 
    }, 

    // hows accessing the 
    test2: function() 
    { 
     alert(val1); 
    } 
}; 

objectTest.test2(); 
+0

당신은 그것을 액세스하고 있다고 말하고 있습니까? –

+0

이 질문은 분명하지 않습니다. – Pointy

+0

포기 했습니까? – Rudu

답변

4

다른 기능에 액세스 할 수 있습니다 대신 시도 :

test1: function() { 
var val1=1; 
}, 

이 @Pekka가 지적 하듯이, 당신을 예 (위)는 objectTest.test1();을 먼저 호출해야합니다 (val1을 작성하십시오) 그렇지 않으면 오류가 발생합니다. 당신이 두 곳에서 변수에 액세스 할 수 원하는 경우에, 당신은 오히려 (@patrick의 DW는 제안 같은) 전역 범위에 추가하지 않는 객체 속성을 사용해야

objectTest.test1(); 
objectTest.test2(); //Shows: Alert-1 
alert(val1); //Shows: Alert-1 
val1=2; 
objectTest.test(2); //Shows: Alert-2 
+0

하지만이 방법으로'val1'을'test2()'에 국한시킬 수 있을까요? –

+0

Pekka! LTNS. 그게 그가 묻는거야? – Rudu

1

은 할 수 없습니다 . 두 가지 기능을 동시에 실행할 수 없으므로 로컬 범위를 공유하는 것은 불가능합니다. 객체의 구성원으로 val1을 정의해야합니다.

0

궁극적으로 원하는 일에 달려 있습니다.

예 : 원래 코드 변경이 물론http://jsfiddle.net/wqr6W/

var objectTest= 
{ 
    val1: 'someDefault', 
    test1: function() 
    { 
     this.val1 = 1; 
    }, 

    // hows accessing the 
    test2: function() 
    { 
     alert(this.val1); 
    } 
}; 
objectTest.test1(); 
objectTest.test2(); 

당신은 객체의 public 멤버 만들 수 있습니다. 당신이 실제로해야 할 일은 당신의 상황에 달려 있습니다.

또는이 :

예 :http://jsfiddle.net/wqr6W/1/

var objectTest= 
{ 
    val1: 'someDefault', 
    test1: function() 
    { 
     this.val1 = 1; 
    }, 

    // hows accessing the 
    test2: function() 
    { 
     this.test1(); 
     alert(this.val1); 
    } 
}; 
objectTest.test2(); 
0

가 더 직접적으로 질문에 대답하기 위해 다른 대답을 추가. 당신이 실제로 함수에 지역 변수에 대해 이야기하는 경우

는 간단한 대답은 액세스가하지 않는 한 참조를 만드는 변수가있는 함수에서 함수를 통과 하지 수 있다는 것입니다 변수에.

이것을 클로저 만들기라고합니다.

예 :http://jsfiddle.net/csd3s/

var objectTest= 
{ 
    test1: function() 
    { 
     var val1 = 1; 
     return {getVal:function() { 
      return val1; 
     }}; 
    }, 

    // hows accessing the 
    test2: function() 
    { 
     alert(this.test1().getVal()); 
    } 
}; 

objectTest.test2(); 

그래서 test2 내부의 로컬 변수를 참조하는 기능을 포함하는 객체를 반환 test1() 함수를 호출 할 수 있습니다.

그 (또는 이와 비슷한) 함수에서 액세스 할 수없는 지역 변수를 참조하는 것입니다.

관련 문제