0

作为测试,我写了这个 fn 有效:

$.fn.doubleup = function(){
    this.html(this.html()*2);
};

$('div').doubleup();

我试图编写一个类似的函数来在如下数字上运行,但这不起作用:

$.fn.doubleup2 = function(){
    this = (this * 2);
};

var n = 2;

n.doubleup2();

是否可以编写在变量或字符串上运行的 fn?

4

1 回答 1

4

在您的场景中,我根本不会使用 jQuery。如果您想在数字上加倍,请尝试使用Number.prototype属性。

Number.prototype.doubleUp = function() {
    return this * 2;
}

var num = 23;
console.log(num.doubleUp());

JavaScript 已经很好地支持您使用自己的功能扩展类型,这里不需要使用 jQuery。

编辑:

根据评论,您可以这样做:

Object.prototype.doubleUp = function () {
    if (this instanceof Number) {
        return this * 2;
    }

    if (this instanceof String) {
        return this * 4; // Just for example.
    }

    return this * 2; // Just for example.
};

var num = 23;
var num2 = "23";
console.log(num.doubleUp());
console.log(num2.doubleUp());
于 2013-08-29T07:58:12.150 回答