2011-02-24 3 views
0

이것은 인스턴스 변수와 인스턴스 메소드로 간단한 클래스를 정의하는 방법입니다.Basic Sproutcore : 클래스 메소드, 클래스 변수 help

ExampleClass = SC.Object.extend({ 
    foo:undefined, 
    bar: function() { 
     this.foo = "Hello world"; 
     console.log(this.foo); 
    } 
} 

// test 
var testInstance = ExampleClass.create(); 
testInstance.bar(); // outputs 'Hello world' 

사람이 클래스 변수 (또는 유사한 behavoir), 수업 방법의 비슷한 예를 좀 도와 주 시겠어요? 당신이 좋아하는 액세스 할 수 있습니다 그리고

ExampleClass = SC.Object.extend({ 
    foo:undefined, 
    bar: function() { 
    this.foo = "Hello world"; 
    console.log(this.foo); 
    } 
} 

ExampleClass.mixin({ 
    classFoo: "foo", 
    classBar: function() { 
    return "Bar"; 
    } 
}) 

:

ExampleClass.classFoo 

을하지만 속성에 액세스 할 때 잊지 마세요

감사

답변

0

는 클래스 메소드/속성을 같이 할 것 (또는 계산 된 속성)을 사용하려면 .get()을 다음과 같이 사용해야합니다.

var example = ExampleClass.create(); 
// Good 
example.get('foo'); 
example.set('foo', 'baz'); 

// BAD!! Don't do this, or Bindings/ Observes won't work. 
example.foo; 
example.foo = 'baz'; 
+0

고마워, 내가 찾고있는 것. 건방진 질문 : - 하나의 액세서 (get() 또는 set())가 모든 속성에 사용되는 경우 사용자 정의 getter 또는 setter를 가질 수 있는지 알고 있습니까? – hooleyhoop

+1

예. 이것은 우리가 얻거나 설정 한 또 다른 주요 이유입니다. 여기를보십시오 : http://guides.sproutcore.com/core_concepts.html#computed-properties – geoffreyd

+0

이것이 제대로 작동하지 않을 것이라는 점은 분명하지 않았습니다. - getter와 setter 모두에 따라 하나의 접근 자 함수가 있다고 생각합니다. 호출 컨텍스트는 나를 던져 줬지만, 훌륭하게 작동합니다. 당신의 도움을 주셔서 감사합니다. – hooleyhoop