1. 程式人生 > >用object( )方法實現非建構函式的繼承

用object( )方法實現非建構函式的繼承

    非建構函式繼承即不使用建構函式實現繼承,讓一個物件繼承另一個物件:

var parent = { 
      surname : '張'
}
var child = {
       first_name : '小凡'
}

    如上,兩個普通的物件,無法使用建構函式方法實現繼承,想實現繼承,我們可以使用json格式的發明人Douglas  Crockford提出的一個object()函式:

 function object(o) {
    function F() {}
    F.prototype = o;
    return new F();
  }

    這個函式其實就做了一件事,就是把子物件(F)的prototype屬性指向了父物件(o),使用這個函式:

var  child= object(parent);
  child.first_name='小凡';
console.log(child.surname);//張

    先用父物件生成子物件,再重新賦予子物件本身的屬性,這樣就實現了子物件對父物件的繼承。