在 JavaScript 中进行原型设计时首选哪种方法



这是一个人为的例子:

我想将两个数字相除,我需要为此编写一种方法。我可以写这样的东西:

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));

两种方法产生相同的答案,所以我想知道的是:
使用这两种方法的优点或缺点是什么。是否存在显著的性能(加载/运行时间)差异?就内存影响而言,一个是否比另一个更可重用?易于理解呢?最终,对于这样一个简单的例子,这重要吗?

我还创建了一个小提琴,因为代码更好。

第一种方法没有缺点(语法不同)

在第二种方法中,如果它成为NumberMath对象或其他具有相同函数名称的第三方库的一部分,您将面临实现的风险:)

虽然通常为了避免它,但这样做是:

Number.prototype.dividedBy = Number.prototype.dividedBy || function (divisor)​ {
    var dividend = this;
    return dividend/divisor;
};

这样,你说,如果已经存在该功能,请使用其他创建我自己的功能。


有关更多详细信息,请查看(@Kangax一如既往的另一篇文章)

  • 扩展内置本机对象。邪恶与否?

最新更新