Điều gì đang xảy ra với IE8 và phương thức đối tượng toString
?Các vấn đề với Object.toString trong IE8, backbone.js
Tôi đang cố gắng ghi đè toString
trong các mô hình của mình trong Backbone.js, nhưng IE8 dường như không nhận ra rằng phương thức có ở đó. Thay đổi tên phương thức thành tên khác hoạt động tốt, nhưng tại sao tôi không thể sử dụng toString
? Tính năng này hoạt động trong Chrome.
var Foo = Backbone.Model.extend({
toString: function(){ return this.get("name"); },
description: function(){ return this.get("name"); }
});
var f = new Foo({name: "a foo"});
document.writeln(f.toString()); // "[object Object]", should be "a foo"
document.writeln("<br/>");
document.writeln(f.description()); // "a foo"
đang JSFiddle: http://jsfiddle.net/x96mR/3/
Lạ ... Tôi nghĩ tôi đã thử điều đó nhưng dường như không. Cảm ơn! – Sam
Backbone icopies tất cả các thuộc tính từ mẫu thử nghiệm theo kiểu liệt kê. IE bỏ qua các thuộc tính với tên: constructor, toString, toLocaleString, valueOf và isPrototypeOf. Nó được gọi là [DontEnumBug] (https://developer.mozilla.org/en-US/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug). –