IE8和toString
對象的方法是什麼?IE8中的Object.toString問題,backbone.js
我想在我的Backbone.js模型中覆蓋toString
,但IE8似乎沒有認識到該方法在那裏。將方法名稱更改爲其他方法可以正常工作,但爲什麼我不能使用toString
?這適用於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"
的jsfiddle代碼:http://jsfiddle.net/x96mR/3/
奇怪......我以爲我嘗試過,但顯然不是。謝謝! – Sam
主幹通過for-in枚舉來覆蓋原型的所有屬性。 IE跳過名稱的屬性:構造函數,toString,toLocaleString,valueOf和isPrototypeOf。它被稱爲[DontEnumBug](https://developer.mozilla.org/en-US/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug)。 –