簡體   English   中英

Javascript原型模式-反饋

[英]Javascript Prototype Pattern - Feedback

我從使用Javascript顯示模塊模式切換,下面的內容似乎可以正常工作。 我想知道的是,我做的是否正確,是否遵循最佳實踐。 例如,我保留“ this”狀態並在構造函數中調用init函數的方式正確嗎?

var testApp = function(){
    //Kick it off
    this.init();
};

testApp.prototype = {
    getUsers: function(callback){
        //do stuff
    },
    buildUserTable: function(data){
        //do stuff
    },
    refreshTable: function(){
        //Example
        this.getUsers();
    },
    init: function(){
        //Preserve 'this'
        var instance = this;
        //Callback + init
        this.getUsers(function(data){
            instance.buildUserTable(data);
        }); 
        $('.formSection .content').hide();
        $('.formSection .content:first').slideDown('slow').addClass('selected');
    }
};

window.onload = function () {
    var form = new testApp();
};

您將完全覆蓋原型。 您不能以這種方式處理繼承。

由於{}是一個對象,因此您將隱式繼承自Object而沒有其他任何繼承。

繼承看起來像這樣:

function A() {};
function B() {};
B.prototype = new A();
var b = new B();
console.log(b instanceof A); // "true"

B現在從AObject繼承。

如果您現在這樣做:

B.prototype = {
    foo: function () {}
};

var b = new B();
console.log(b instanceof A); // "false"

您不再從A繼承;

如何為原型添加功能? 使用以下表示法:

B.prototype.foo = function () {};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM