ऑब्जेक्ट्स की IE8 और toString
विधि के साथ क्या हो रहा है?IE8 में Object.toString के साथ समस्याएं, backbone.js
मैं Backbone.js में अपने मॉडल में toString
को ओवरराइड करने का प्रयास कर रहा हूं, लेकिन IE8 यह नहीं मानता कि विधि वहां है। विधि नाम को किसी अन्य चीज़ में बदलना ठीक काम करता है, लेकिन मैं toString
का उपयोग क्यों नहीं कर सकता? यह क्रोम में काम करता है।
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
बैकबोन प्रोटोटाइप से सभी गुणों को इन-इन गणना द्वारा icopies। आईई नामों के साथ संपत्तियों को छोड़ देता है: कन्स्ट्रक्टर, टूस्ट्रिंग, toLocaleString, valueOf और isPrototypeOf। इसे [डोंटएनमबग] कहा जाता है (https://developer.mozilla.org/en-US/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug)। –