国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript prototype原型操作筆記

2019-11-21 00:55:52
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

//var People={name:"xiong",age:15};
//var Person=function(user,age){
//    this.name=user;
//    this.age=age;
//    this.say=function(){alert("I am "+this.name+"/n"+this.age);}
//}
//var Chairman=function(name,salary){
//    Person.call(this,name);
//    }
//var Bill=new Person("Bill",15);
//var Hu=new Chairman("Hu Jintao");
//Person.prototype.eat=function(){
//    alert("I'm eating");
//    }
//Bill.eat();
function Person(name) //基類構造函數
{
this.name = name;
};

Person.prototype.SayHello = function() //給基類構造函數的 prototype 添加方法
{
alert("Hello, I'm " + this.name);
};

function Employee(name, salary) //子類構造函數
{
Person.call(this, name); //調用基類構造函數
this.salary = salary;
};

    function Xiong(name,age){
        Employee.call(this,name);

        }

Employee.prototype = new Person(); //建一個基類的對象作為子類原型的原型,這里很有意思

    Xiong.prototype=new Employee();

Employee.prototype.ShowMeTheMoney = function() //給子類添構造函數的 prototype 添加方法
{
alert(this.name + " $" + this.salary);
};
var BillGates = new Person("Bill Gates"); //創建基類 Person 的 BillGates 對象
var SteveJobs = new Employee("Steve Jobs", 1234); //創建子類 Employee 的 SteveJobs對象
     var hiakuotiankong=new Xiong("海闊天空");
     var benbenxiong=new Xiong("笨笨熊");

// BillGates.SayHello(); //通過對象直接調用到 prototype 的方法
// hiakuotiankong.SayHello(); //通過子類對象直接調用基類 prototype 的方法,關注!
     benbenxiong.SayHello=function(){ //掩蓋了原型的 SayHello 方法
         alert("haha,I'm"+this.name);
}
         benbenxiong.SayHello();
// SteveJobs.ShowMeTheMoney(); //通過子類對象直接調用子類 prototype 的方法
// alert(BillGates.SayHello == SteveJobs.SayHello); //顯示:true,表明 prototype 的方法是共享的
    Xiong.prototype.Goodbye=function(){
         alert(this.name+"Bye-bye");
        }
    benbenxiong.Goodbye();    

在 JavaScript 中,prototype 不但能讓對象共享自己財富,而且 prototype 還有尋根問祖的
天性,從而使得先輩們的遺產可以代代相傳。當從一個對象那里讀取屬性或調用方法時,如果該對象自
身不存在這樣的屬性或方法,就會去自己關聯的 prototype 對象那里尋找;如果 prototype 沒有,又會
去 prototype 自己關聯的前輩 prototype 那里尋找,直到找到或追溯過程結束為止。

在 JavaScript 內部,對象的屬性和方法追溯機制是通過所謂的 prototype 鏈來實現的。當用 new
操作符構造對象時,也會同時將構造函數的 prototype 對象指派給新創建的對象,成為該對象內置的原
型對象。對象內置的原型對象應該是對外不可見的,盡管有些瀏覽器(如 Firefox)可以讓我們訪問這個
內置原型對象,但并不建議這樣做。內置的原型對象本身也是對象,也有自己關聯的原型對象,這樣就
形成了所謂的原型鏈。

在原型鏈的最末端,就是 Object 構造函數 prototype 屬性指向的那一個原型對象。這個原型對象
是所有對象的最老祖先,這個老祖宗實現了諸如 toString 等所有對象天生就該具有的方法。其他內置
構造函數,如 Function, Boolean, String, Date 和 RegExp 等的 prototype 都是從這個老祖宗傳承下
來的,但他們各自又定義了自身的屬性和方法,從而他們的子孫就表現出各自宗族的那些特征。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜新市| 盐亭县| 巴东县| 涿州市| 浮山县| 静宁县| 司法| 永平县| 安达市| 琼中| 新田县| 乌恰县| 汉沽区| 咸阳市| 湘阴县| 铜山县| 临西县| 来宾市| 宜兴市| 息烽县| 漳浦县| 张掖市| 大余县| 沙湾县| 鹿泉市| 东光县| 涞源县| 宜兰县| 安徽省| 安福县| 阿克| 同江市| 天祝| 井陉县| 五华县| 新闻| 宁陵县| 城步| 黎城县| 平泉县| 庄河市|