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

首頁 > 編程 > JavaScript > 正文

JavaScript 實現類的多種方法實例

2019-11-20 22:45:31
字體:
來源:轉載
供稿:網友

構造方法

復制代碼 代碼如下:

function coder()
{
    this.name = '現代魔法';
    this.job = 'Web 開發者';
    this.coding = function ()
    { alert('我正在寫代碼'); }
}

var coder = new coder();
alert(coder.name);
coder.coding();


工廠方法
復制代碼 代碼如下:

function createCoderFactory()
{
    var obj = new Object();
    obj.name = '現代魔法';
    obj.job = '程序員';
    obj.coding = function ()
    {
        alert('我正在寫代碼');
    };
    return obj;
}
var coder = createCoderFactory();
alert(coder.name);
coder.coding();

工廠方法和構造方法都有著一個相同的缺點,就是每創建一個實例,都會實例化該類的每個函數。

原型鏈

復制代碼 代碼如下:

function coder(){}
coder.prototype.name = '現代魔法';
coder.prototype.job = '程序員';
coder.prototype.coding = function(){
    alert('我正在寫代碼');
};
var coder = new coder();
alert(coder.name);
coder.coding();

原型鏈有個缺點就是它所有屬性都共享,只要一個實例改變其他的都會跟著改變。如:

復制代碼 代碼如下:

var coder1 = new coder();
var coder2 = new coder();
alert(coder1.name);     /*顯示現代魔法*/
coder2.name = 'nowamagic';
alert(coder1.name);     /*顯示nowamagic*/
alert(coder2.name);     /*這個也顯示nowamagic*/

混合方式
以上三種都有著各自的缺點,所以我們要加以改進。

復制代碼 代碼如下:

function coder()
{
    this.name = '現代魔法';
    this.job = '程序員';
}
coder.prototype.coding = function(){
    alert('我正在寫代碼');
};

動態原鏈
要解決前三種的缺點,還有一種方法。

復制代碼 代碼如下:

function coder()
{
    this.name = '現代魔法';
    this.job = '程序員';
    if (typeof(coder._init) == 'undefined')
    {
        this.coding = function ()
        {
            alert('我正在寫代碼');
        };
        this._init = true;
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和硕县| 卫辉市| 台南县| 肥东县| 安化县| 武冈市| 承德县| 济南市| 沙雅县| 天峨县| 泰州市| 巧家县| 濮阳县| 尉氏县| 桓台县| 孙吴县| 公主岭市| 广州市| 东阳市| 鄂托克前旗| 壶关县| 饶阳县| 都匀市| 海阳市| 武乡县| 南投市| 营口市| 台江县| 农安县| 兴文县| 沧州市| 苏尼特左旗| 岚皋县| 土默特左旗| 东兴市| 丰宁| 鸡东县| 舞钢市| 望谟县| 昌平区| 邵东县|