位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 擴展原型方法

提問人:劉團圓發(fā)布時間:2020-11-26

■設(shè)計思路

JavaScript允許通過prototype為原生類型擴展方法,擴展方法可以被所有對象調(diào)用。例如,通過Function, prototype為函數(shù)擴展方法,然后為所有函數(shù)調(diào)用。

■設(shè)計代碼

為Function添加一個原型方法method,該方法可以為其他類型添加原型方法。

Function.prototype.method = function(name, func) {

    this.prototype[name] = func;

    return this;

};

■應(yīng)用代碼

【示例1】下面利用method擴展方法為Number擴展一個int原型方法。該方法可以對浮點數(shù)進行取整。

Number.method('int', function() {

    return Math[this < 0 ? 'ceil' : 'floor'] (this);

});

console.log((-10 / 3).int());      //-3

    Number.method方法能夠根據(jù)數(shù)字的正負來判斷是使用Math.ceil還是Math.floor,這樣就避免了每次都編寫上面的代碼。

【示例2】下面利用method擴展方法為String擴展一個trim原型方法。該方法可以清除字符串左右 兩側(cè)的空字符。

String.method(1 trim1, function () {

    return this.replace(/^\s+ 丨\s+$/g, '');

});

console, log ('"' + " abc ".trim() + '"'); //返回帶引號的字符串 ''abc''

trim方法使用了一個正則表達式,把字符串中的左右兩側(cè)的空格符清除掉。

另外,可以使用hasOwnProperty方法過濾原型屬性或者私有屬性。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部