자바 클래스 vector
을 0으로 초기화 된 배열로 만들고 싶습니다. 나중에 수학 함수를 추가하고 싶지만, 프로그램이 많은 양의 데이터를 다루기 때문에 원시 타입의 메모리 나 성능 특성을 희생하고 싶지는 않습니다. (그것은 기본적으로 과학적 시각화입니다.)Javascript에서 상속받은 배열 또는 입력 된 배열
나는 파이어 폭스 나에게 오류
TypeError: Array.prototype.toSource called on incompatible Object
이 파이어 폭스의 버그를 제공
vector.prototype = Object.create(Array.prototype);
를 사용하려고 프로토 타입 체인에 Array.prototype
를 삽입하려면? 그것은 Webkit에서 작동하는 것 같습니다.
그래서 내가 원하는대로 가까이에 있으며, 기본값으로 0으로 초기화 된 Float32Array
을 사용하려고했습니다.
var vector = function(size) { Float32Array.call(this, size); }
vector.prototype = Object.create(Float32Array.prototype);
Firefox에서는이 작업이 실행되지만 new
은 개체를 제대로 초기화하지 않습니다. Webkit에서 new vector
은 예외를 throw합니다. 대신 vector.prototype = Float32Array.prototype
을 사용하면 아무런 차이가 없습니다.
근본적으로 너무 많이 묻고 있습니까?
질문이 있습니까? :) –
@FelixKling Sounds like ... 그리고'toSource'는 파이어 폭스 전용 확장 기능이므로 표준에 의해 반드시 위임되지는 않습니다. 내 주요 질문은 그것이 예외를 던져서 비표준인지 여부입니다. – Potatoswatter
@SergioTulentsev Firefox의 버그입니까? 또는'Object.create (Array.prototype); 일부 모호한 이유로 불법입니까? – Potatoswatter