JavaScript 扩展原型方法
■设计思路
JavaScript允许通过prototype为原生类型扩展方法,扩展方法可以被所有对象调用。例如,通过Function, prototype为函数扩展方法,然后为所有函数调用。
■设计代码
为Function添加一个原型方法method,该方法可以为其他类型添加原型方法。
Function.prototype.method = function(name, func) {
this.prototype[name] = func;
return this;
};
■应用代码
【示例1】下面利用method扩展方法为Number扩展一个int原型方法。该方法可以对浮点数进行取整。
Number.method('int', function() {
return Math[this < 0 ? 'ceil' : 'floor'] (this);
});
console.log((-10 / 3).int()); //-3
Number.method方法能够根据数字的正负来判断是使用Math.ceil还是Math.floor,这样就避免了每次都编写上面的代码。
【示例2】下面利用method扩展方法为String扩展一个trim原型方法。该方法可以清除字符串左右 两侧的空字符。
String.method(1 trim1, function () {
return this.replace(/^\s+ 丨\s+$/g, '');
});
console, log ('"' + " abc ".trim() + '"'); //返回带引号的字符串 ''abc''
trim方法使用了一个正则表达式,把字符串中的左右两侧的空格符清除掉。
另外,可以使用hasOwnProperty方法过滤原型属性或者私有属性。
点击加载更多评论>>