2013-03-18 4 views
1

알았어. 이건 정말 간단 해 보이는데, 제대로 작동하지 않을거야. obect에서 변수를 결합해야합니다. 이런 식으로 뭔가 :자바 스크립트 내에서 변수 결합하기

var i = { 
    a: 1, 
    b: " sheep", 
    c: this.a + this.b 
} 

가 그래서 나중에 내가 좋아하는 뭔가를 할 수 있습니다

i.a = 3; 
console.log(i.c); 

와 "3 양"을 얻는다.

이것은 바보 같은가요? 아니면 그것에 가장 가까운 것은 무엇입니까?

답변

7

기능을 사용하십시오.

var i = { 
    a: 1, 
    b: " sheep", 
    c: function() { 
     return this.a + this.b; 
    } 
} 

i.a = 3; 
console.log(i.c()); 

이이처럼 보이지만 함수 호출을 피하기 위해 어쨌든이있다(). 나는 객체에서 사용하고 설정하는 것을 보았습니다. 이것은 널리 사용되는 무언가입니까?

물론 위의 코드가 적용되는 동안 but they won't work in IE <9 게터를 사용할 수 있으며 완전히 새로운 언어 구문을 사용하므로 심의 방법이 없습니다.

var i = { 
    a: 1, 
    b: " sheep", 
    get c() { 
     return this.a + this.b; 
    } 
} 

i.a = 3; 
console.log(i.c); 
+0

이이처럼 보이지만 함수 호출을 피하기 위해 어쨌든이있다(). 객체에서 사용되는 [get 및 set] (https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters)을 보았습니다. 이것은 널리 사용되는 무언가입니까? – mattl

+0

물론, 그것도 작동합니다. 내 편집을 참조하십시오. –

+0

awesome - thankyou – mattl

3

그것은 당신이 할 경우에만 문자 객체의 수 :

var i = { 
    a: 1, 
    b: " sheep", 
    c: function() { return this.a + this.b; } 
}; 

console.log(i.c()); 
3
var i = { 
    a: 1, 
    b: " sheep", 
    c: function() { return this.a + this.b } 
} 

i.a = 3; 
console.log(i.c());