1. 程式人生 > >Javascript學習---原型方法

Javascript學習---原型方法

原型的基本方法

Javascript提供了原型的相關方法來獲取或設定原型prototype,如下:

(1)Object.create(proto[, descriptors]) :產生一個新的物件並設定proto為它的原型;

(2)Object.getPrototypeOf(obj) :返回物件obj的原型物件;

(3)Object.setPrototypeOf(obj, proto):設定物件obj的原型物件為proto;


下面是一個例子:

let animal = {
  eats: true
};

// create a new object with animal as a prototype
let rabbit = Object.create(animal);

alert(rabbit.eats); // true
alert(Object.getPrototypeOf(rabbit) === animal); // get the prototype of rabbit

Object.setPrototypeOf(rabbit, {}); // change the prototype of rabbit to {}

Object.create(proto[, descriptors])的第二個引數是描述符,我們可以在該原型物件的基礎上再新增一些屬性,例如:

let animal = {
  eats: true
};

let rabbit = Object.create(animal, {
  jumps: {
    value: true
  }
});

alert(rabbit.jumps); // true
alert(rabbit.eats);  //true


我們推薦使用Obejct.create()方法來複制一個物件,這種方式明顯比for...in要好,例如:

// fully identical shallow clone of obj
let clone = Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));

這種方式能夠徹底地複製一個物件,包括被複制物件的所有屬性:Symbol屬性,資料屬性和訪問器屬性等等