내 앱에서 버그를 잡으려고 많은 시간을 보냈습니다. 결국 나는 행동이 매우 이상하게 보일 정도로이 코드 조각을 구분했다.백본의 속성으로 이동
var Model = Backbone.Model.extend({
myProperty: []
});
var one = new Model();
var two = new Model();
one.myProperty.push(1);
console.log(two.myProperty); //1!!
그 이유는 무엇입니까? 왜 그렇게 행동합니까? 코드에서 이러한 유형의 버그를 피하는 방법은 무엇입니까?
감사합니다. 나는 초기화에서 myproperty를 초기화 할 것을 고려했다. (동어 반복을 위해 유감스럽게 생각한다.) 그러나 그것은 다른 방법으로 그것을 초기화하는 것이 다른 결과를 가져온다는 것이 이상했다. 적어도 그것은 의미 상으로 명백하지 않습니다 ...하지만 백본이 아니라 자바 스크립트 문제입니다. – alexb
정확 하 게 요점은 그것이 백본의 것이 아니라 JavaScript라는 것입니다. 본질적으로 문제는 아니며 실제로 프로토 타입 시스템에는 완전히 필요합니다. 모델 인스턴스가 없으면 모델 인스턴스는 많은 중복 객체를 만들지 않고 메서드 나 공통 속성을 공유 할 수 없습니다. 이 유형의 버그는 매우 자주 발생합니다! – joews