나는 이것이 브라우저에서 직접 어떻게 수행되는지 궁금합니다. Javascript Engines의 Array .length 속성은 사실 보이지 않는 setter 및 getters를 사용하여 ECMA 표준의 기능을 구현한다고 들었습니다. "길이 속성이 변경 될 때마다 값이 작지 않은 배열 색인 이름 인 모든 속성 새 길이가 자동으로 삭제됩니다 "). 나는이 경우 setter가 필요하다는 것을 알고 있지만 getter는 무엇을해야합니까? 이 값을 얻기 위해 네이티브 게터를 정말로 호출해야합니까? 또는 이것은 Javascript Engine을 어딘가에서 이해하는 데있어 단지 약간의 실수 일뿐입니다.Javascript Array .length JavascriptEngine의 속성/메소드
답변
속성을 필드 또는 세터/getter 메소드로 구현 중 ...
var obj = {myProp:0}.myProp; // getting
obj.myProp = 1; // setting
위의 예는 약간 펑키,하지만 난 당신이 생각을 생각합니다.
필드의 경우 값을 설정하면 값이 변경 될 때보 다 더 이상 값이 변경되지 않습니다.
값이 설정 될 때마다 더 많은 작업을 수행하기 위해 setter 메서드가있는 경우 getter 메서드가 값을 반환하는 것 이상의 작업을 수행하지 않더라도 일치시킬 getter 메서드가 있습니다. 속성을 구현하는 두 가지 방법을 섞어 쓰고 싶지는 않습니다. 어느 방향으로나 쉽게 들어가는 것이 훨씬 간단합니다.
defineGetter and defineSetter을 살펴보십시오. 이것은 파이어 폭스가하는 방법 일지 모르지만 다른 브라우저에 대해서는 잘 모르겠습니다.
정말 중요한가요? .length는 내가 아는 모든 것을 C++로 구현할 수 있습니다. 그것은 자바 스크립트 엔진의 내장 된 부분 일 수 있으며 어쨌든 자바 스크립트에서는 실제로 구현할 수 없습니다. 사용자가 알 필요가있는 것은 길이가 배열의 길이를 유지한다는 것입니다. 배열을 변경하면 배열의 길이가 변경됩니다.
먼저 JavaScript Array 객체에는 .length() 함수 속성이 있습니다.이 속성은 배열 인스턴스의 현재 길이를 반환합니다. 게터와 세터는 자바 스크립트 1.6에서 정의 될 수 있지만 널리 채택되지는 않았으며 많은 것을 사용하지 못했습니다. getter와 값을 반환하는 함수의 유일한 차이는 구문입니다. 게터와 세터는 할당 방향에 따라 엔진에서 호출 할 수 있습니다.
- 1. Javascript Array 사전로드
- 2. Search Array in JavaScript
- 3. javascript summing up array
- 4. Javascript utf-8 substr 및 length 함수
- 5. 배열 변수의 의미는 .length 속성
- 6. JRuby Array to Java Array
- 7. 안드로이드 - "device length"오류가 "invalid length"오류로 인해 실패합니다.
- 8. int [] [LENGTH] 대신`int * [LENGTH]`를 넘겨 주어도 괜찮습니까?
- 9. BindingSource.Filter maximum length
- 10. Limit Ringtone Length Applescript
- 11. Seekbar length manipulation
- 12. android scrollbar thumb length
- 13. Viewstate invalid length error
- 14. HTTP 헤더 - ntCoent-Length
- 15. jQuery Max Length Plugin
- 16. Contenteditable DIV length
- 17. Array 클래스에서 상속 받음
- 18. 알 수없는 배열 키가있는 Javascript Array (JSON 형식)
- 19. Javascript (Array)의 리더 보드에 대하여 Help Me Please
- 20. Javascript (Array)의 리더 보드에 대하여 Help Me Please
- 21. preg_match array
- 22. 잘못된 유형 : 'Array'및 'dynamic array'
- 23. 변경시 select with jQuery array()
- 24. JSON Jquery Array 유형
- 25. 스크립트 언어 : Max. Line Length
- 26. Try-Catch 또는 Check Length?
- 27. String의 length 속성을 재정의하는 방법
- 28. jQuery 및 .length> 0
- 29. Content-Length 헤더가 이미 있습니다.
- 30. varnishtop show "list length 0"?
네이티브 개체는 고유 한 getters/setter를 가질 수 있습니다. –