2009-08-08 3 views
-1

그래서 나는 자바 스크립트 꽤 잘 알고 있지만, 이것에 대해 잘 모르겠습니다.몇 가지 야생 자바 스크립트 구문과 contraints에 대한 질문

힘든 난 그냥 보여주지 이렇게 설명합니다 :

var view = new View(); 

view.rating = 4.5; 

어쨌든 거기 view.rating는 DOM을 약간 조작하고 다섯 해당 등급을 설정하는 함수로 호출 할 것으로? 보기에 따라서

는 :

View.prototype = { 

    rating : function() { 
    $('div.stars').width(4.5); 
    } 

} 

나는 "view.rating = 5"이외를 사용하여 해결 방법이 알고있다. 나는 그것들에 관심이 없다. view.rating = 5 유지 보수를 설정하는 방법이 있는지 궁금하네요. JS JS 본격적으로 오는 PHP 및 익명의 함수를 사용하여 PHP 늪지 싶지 않아 .. view.rating 같은 = function() {...};

감사합니다. 매트 뮬러

답변

4

호 (편집는 :하지 적어도 일반적인 브라우저의 모든 구현에)

"는 = 연산자를 오버로딩"은 자바 스크립트에 해당 아무것도 없습니다.

편집 :

나는이 당신에게 분명하다 있는지 확실하지 않습니다. rating을 함수 (프로토 타입을 사용하든 그렇지 않든간에)로 만들려면 view.rating(5)과 같이 호출해야하며 DOM을 업데이트 할 수 있습니다 (또는 아무것도 수행하지 않아야 함).

+2

또는 재산 세터. –

+0

예. 나는 커스텀 Smarty 템플릿 함수를 만들기 위해 심각한 제약을 겪고 있으며, 서버의 부담을 덜어 주길 원한다. PHP는 이러한 일을하는 데있어 모든 야생 방식을 가지고 있습니다. Javascript에도 약간의 트릭이 있는지 궁금합니다. 감사! – Matt

3

JavaScript의 대부분의 구현은 getter/setter 속성 만들기를 지원하지 않으므로 웹에서 유용하지 않을 수 있습니다. 그러나 몇 가지 구현이 있습니다.

편집 : 나를 그냥 게터를 작성 명확히하자/세터가 getFoo()의 사용에 문법 설탕은/setFoo를 사용해 (foo는) 스타일 여기에 모질라의 구현 예입니다 재산. 그것은 개발자를위한 것입니다. IMO, 웹 응용 프로그램 (주로 IE의 지원 부족으로 인해)은 아직 현실적이지 않습니다. IE 시장 점유율이 떨어지는 동안, 공개 앱의 인구 통계에 따라 많은 방문자가에이 시점에서 여전히 지원을받지 못합니다. 당신을 위해 관심을

좀 더 링크 :

+0

새로운 것을 매일 배우십시오! 감사! – Matt

+2

모든 JS 구현은 IE의 엔진을 제외하고 getter와 setter를 지원합니다. – olliej

+0

@olliej : IE8은 DOM 개체에 대한 getter와 setter를 지원하지만 다른 브라우저에서는 (아직) 지원하지 않는 새로운 ECMAScript 3.1 구문 만 사용합니다. http://msdn.microsoft.com/en-us/library/dd229916(VS.85,loband).aspx – outis