在JavaScript中进行原型设计时,首选哪种方法?
下面是一个人为的例子: 我想把两个数除,我需要写一个方法来实现。我可以这样写:在JavaScript中进行原型设计时,首选哪种方法?,javascript,prototype,Javascript,Prototype,下面是一个人为的例子: 我想把两个数除,我需要写一个方法来实现。我可以这样写: function divide(dividend,divisor) { return dividend/divisor; }; //Assign the result of the divide function to an element on the page. $(".firstanswer").html(divide(6,2)); Number.prototype.dividedBy = func
function divide(dividend,divisor) {
return dividend/divisor;
};
//Assign the result of the divide function to an element on the page.
$(".firstanswer").html(divide(6,2));
Number.prototype.dividedBy = function (divisor) {
var dividend = this;
return dividend/divisor;
};
var six = 6;
var two = 2;
$(".secondanswer").html(six.dividedBy(two));
我也可以这样写:
function divide(dividend,divisor) {
return dividend/divisor;
};
//Assign the result of the divide function to an element on the page.
$(".firstanswer").html(divide(6,2));
Number.prototype.dividedBy = function (divisor) {
var dividend = this;
return dividend/divisor;
};
var six = 6;
var two = 2;
$(".secondanswer").html(six.dividedBy(two));
两种方法都会得到相同的答案,所以我想知道的是:使用这两种方法的优缺点是什么。是否存在显著的性能(加载/运行时)差异?就内存影响而言,一个比另一个更可重用吗?理解的容易程度如何?最后,举个如此简单的例子,这有关系吗
因为代码更好,所以我也选择了这种方法。第一种方法没有缺点(除了不同的语法) 在第二种方法中,您要冒实现的风险,如果它成为
Number
或Math
对象或具有相同函数名的其他第三方库的一部分:)
虽然通常是为了避免这种情况,但这是通过以下方式实现的:
Number.prototype.dividedBy = Number.prototype.dividedBy || function (divisor) {
var dividend = this;
return dividend/divisor;
};
这样,你可以说,如果已经有了这个函数,那么就用它来创建我自己的函数
有关更多详细信息,请查看(一如既往的另一篇优秀文章)