jquery protoType

模擬JavaScript中類和繼承 在面向對象的語言中,咱們使用類來建立一個自定義對象。然而JavaScript中全部事物都是對象,那麼用什麼辦法來建立自定義對象呢?函數

這就須要引入另一個概念 - 原型(prototype),咱們能夠簡單的把prototype看作是一個模版,新建立的自定義對象都是這個模版(prototype)的一個拷貝 (實際上不是拷貝而是連接,只不過這種連接是不可見,給人們的感受好像是拷貝)。this

讓咱們看一下經過prototype建立自定義對象的一個例子:prototype

// 構造函數 function Person(name, sex) { this.name = name; this.sex = sex; } // 定義Person的原型,原型中的屬性能夠被自定義對象引用 Person.prototype = { getName: function() { return this.name; }, getSex: function() { return this.sex; } } 這裏咱們把函數Person稱爲構造函數,也就是建立自定義對象的函數。能夠看出,JavaScript經過構造函數和原型的方式模擬實現了類的功能。 建立自定義對象(實例化類)的代碼:對象

var zhang = new Person("ZhangSan", "man"); console.log(zhang.getName()); // "ZhangSan" var chun = new Person("ChunHua", "woman"); console.log(chun.getName()); // "ChunHua" 當代碼var zhang = new Person("ZhangSan", "man")執行時,其實內部作了以下幾件事情:繼承

建立一個空白對象(new Object())。 拷貝Person.prototype中的屬性(鍵值對)到這個空對象中(咱們前面提到,內部實現時不是拷貝而是一個隱藏的連接)。 將這個對象經過this關鍵字傳遞到構造函數中並執行構造函數。 將這個對象賦值給變量zhang。ip

相關文章
相關標籤/搜索