1. _proto_和prototype prototype屬性是一個靜態屬性, _proto_屬性是一個實例屬性。 prototype表示類的原型對象,_proto_表示原型對象中定義的內部屬性[prototype]的值。 類的每一個實例都有一個_proto_屬性,用於引用創建它的構造方法的pro ...
1. _proto_和prototype prototype屬性是一個靜態屬性, _proto_屬性是一個實例屬性。 prototype表示類的原型對象,_proto_表示原型對象中定義的內部屬性[prototype]的值。 類的每一個實例都有一個_proto_屬性,用於引用創建它的構造方法的prototype屬性,也就是該類的原型對象,即存在如下等式:(new Array("abc"))._proto_===Array.prototype (Array("abc")為Array的實例) 2.es5中增加的原型處理 使用Object.getPrototypeOf()方法可以得到指定的對象的prototype屬性 該方法的格式為:Object.getPrototypeOf(obj),該方法是一個靜態方法,能獲取這個對象的原型 Object.getPrototypeOf(new Array("abc"))===Array.prototype與(new Array("abc"))._proto_===Array.prototype意義相同 用戶可使用如下代碼實現瀏覽器相容
if(typeof Object.getPrototypeOf!=="function"){ if(typeof "test"._proto_==="object"){ Object.getPrototypeOf=function(object){ return object._proto_; }; }else{ Object.getPrototypeOf=function(object){ return object.constructor.prototype; }; } }