1. 程式人生 > 遊戲 >戰鬥更輕鬆 玩家自制《最終幻想7:重製版》視距MOD

戰鬥更輕鬆 玩家自制《最終幻想7:重製版》視距MOD

原型和例項物件

每一個函式天生都有一個原型(prototype),當函式被new關鍵字呼叫的時候,產生的例項的__proto__都指向次建構函式的prototype物件

 function Person() {}
 console.log(Person.prototype);
  function Person() {}
      var xiaoming = new Person();
      console.log(xiaoming);

此時我們可以判斷一下這個xiaoming的__proto__是否等於Person建構函式的prototype

 console.log(xiaoming.__proto__ == Person.prototype)

建構函式的prototype指向了誰,該例項的__proto__就指向誰

__proto__有什麼用?

所有的物件都有__proto__屬性,這個屬性指向的就是自己的“原型物件”,每一個物件在通過點語法訪問自己的屬性、方法的時候,都擁有原型鏈查詢(proto search)的功能。什麼叫做原型鏈查詢?如果當前對

象自己身上有這個屬性或者方法,則用自己的,如果沒有則沿著__proto__指向的原型物件中去查詢,如果在原型物件上有這個方法,則呼叫這個原型物件屬性或者方法

 function Person(name,sex) {
        this.name = name;
        
this.sex = sex; } Person.prototype.sayHello = function () { console.log("你好,我是" + this.name + ",我是一個" + this.sex + "生,") }; var xiaoming = new Person("小明", ""); var xiaohong = new Person("小紅", ""); console.log(xiaoming); console.log(xiaohong);

此時就可以看到方法是在原型物件上(也就是建構函式的原型上)

此時我們也可以驗證xiaoming和xiaohong呼叫的是同一個函式

      console.log(xiaoming.sayHello == xiaohong.sayHello)     

語法:

function 建構函式(屬性1,屬性2,屬性3) {
this.屬性1 = 屬性1;
this.屬性2 = 屬性2;
this.屬性3 = 屬性3;
}
建構函式.prototype.方法1 = function(){

}
建構函式.prototype.方法2 = function(){

}

建構函式.prototype.方法3 = function(){

}