我如何在字符串而不是对象上运行自定义函数

时间:2013-08-29 07:55:54

标签: javascript jquery function

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

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

$('div').doubleup();

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

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

var n = 2;

n.doubleup2();

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

1 个答案:

答案 0 :(得分: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());