在Javascript中,如果我們有一個對象但是又不知道它的構造函數時,如何獲取它的原型對象呢?
在Chrome中或是FireFox浏覽器中,我們可以直接使用對象的__proto__屬性獲取它的原型對象。
代碼如下:
<!-- lang: js -->
function F(){};
var foo = new F();
alert(foo.__proto__ == F.prototype);
但是,__proto__屬性在IE浏覽器中一直到IE11才被支持。
那麼在不支持__proto__屬性的浏覽器中,我們怎麼得到對象的原型對象呢?可以通過constructor間接得到。
代碼如下:
<!-- lang: js -->
function F(){};
var foo = new F();
alert(foo.constructor.prototype == F.prototype);
constructor屬性不是對象自己的屬性,而是順著原型鏈向上從原型對象中獲取的。這個屬性指向的是這個原型對象所對應的構造函數。而構造函數的prototype屬性指向了原型對象, 所以這樣我們就可以間接得到了。
以上所述就是本文關於javascript中獲取原型對象的全部內容了,希望大家能夠喜歡。