我通过创建一些对我有用的函数扩展了javascripts的核心功能。今天为函数创建测试用例时,我开始想知道哪种方式最适合扩展整数的javascripts功能。使用Number.prototype或Math对象。
Number.prototype.sqr = function () {
return this * this;
};
var test1 = (6).sqr();
alert("This is 36: " + test1);
OR
Math.sqr = function (num) {
return num * num;
};
var test2 = Math.sqr(6);
alert("This is 36: " + test2);
这两个示例可以针对您要创建的任何整数类型函数进行切换,应该使用哪个?
答案 0 :(得分:3)
我选择Math.sqr
,因为它不会强迫代码的读者思考“这个有sqr
成员的东西是什么?”。当然,在一个真实的程序中,你不会看到(6).sqr()
可能会让它更清楚发生的事情,而是一些变量。
答案 1 :(得分:1)
无论你喜欢什么语法都没关系。当你开始搞乱Array.prototype或( GASP )Object.prototype时,情况并非如此。
为了保持一致性,我更喜欢修改数学,因为其他内容如pow,sqrt,sin等都在那里。