Object物件的屬性

weixin_34402408發表於2018-07-19

1、prototype屬性

該屬性返回物件型別原型的使用。

objectName.prototype

引數說明:
objectName:是物件的名稱。
用prototype屬性可以提供物件的類的一組基本功能。物件的新例項“繼承”賦予該物件原型的操作。
例如,要為Array物件新增返回陣列中最大元素值的方法是,宣告該函式,將它加入Array.prototype,並使用它。

function array_max(){
    var i,max=this[0];
    for(i = 1;i < this.length;i++){
        if(max < this[i]){
            max = this[i];
        }
    }
    return max;
}
Array.prototype.max = array_max;
var x = new Array(1,2,3,4,5,6,3,1,7);
var y = x.max();
console.log(y);

//結果:7,y儲存陣列x中的最大值

所有js固有物件都有隻讀的prototype屬性。可以像該例中那樣為原型新增功能,但該物件不能被賦予不同的原型。然而,使用者定義的物件可以被賦給新的原型。

2、constructor屬性

該屬性表示建立物件的函式

object.constructor

引數說明:
object:必選項。是物件或函式的名稱。
constructor屬性是所有具有prototype的物件的成員。它們包括除Global和Math物件以外的所有js固有物件。constructor屬性儲存了對構造特定物件例項的函式的引用。例如:

x = new String("Hi");
if(x.constructor == String){
    console.log(true);  //進行處理(條件為真)
}

function MyFunc(){
    //alert("aaa");    //函式體
}
y = new MyFunc;
if(y.constructor == MyFunc){
    console.log(true);    //進行處理(條件為真)
}

//結果: true

174255-3bb985055a77dea4.jpg
千萬別告訴別人哇~~

相關文章