Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中进行原型设计时,首选哪种方法?_Javascript_Prototype - Fatal编程技术网

在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;
};
这样,你可以说,如果已经有了这个函数,那么就用它来创建我自己的函数


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


IMO,第一个更适合回调。这非常完美,您提供的代码非常有用。谢谢你的回答。