Each instance of a reference type has a pointer to its prototype object. This pointer is represented by __proto__ in non-IE browsers and is not available in IE.
Look at the following code:
obj = {};obj.__proto__.tostring = function () { return "__proto__";} var Ceshi = {};alert (Ceshi);
The output is __proto__.
Cause: There is only one object prototype in JavaScript.
In the second line, the ToString member variable of the prototype object is modified, and the object prototype objects are shared by all reference type instances and only one, so the other object invocation ToString () also changed.
IE does not provide this __proto__ so that it cannot get to object prototype objects, and cannot modify the attributes of this ancestor. It would be safer to do so.
But is there any way to replace it?
Because __proto__ is not a standard method, the standard method is object.getprototypeof ();
Look at the following code:
var obj = {};console.log (obj.__proto__);//Output object {}//equals object.getprototypeof (obj);//Output Object {}
Into the __proto__ property, see if IE support it, who came to his home