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

标签 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?

最佳答案

在你的场景中,我根本不会使用 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());

关于javascript - 如何在字符串而不是对象上运行自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18505215/

相关文章:

javascript - 如何将所有表格的表格行高设置为固定值

javascript - 为div jquery的文本分配索引

javascript - Vimeo 视频灯箱

javascript - 最大宽度为:100% and height:auto in Safari的图片读取高度

php - IF 语句不改变变量的结果

C 在手动填充的数组中搜索值

sql - PostgreSQL 函数返回表

php - 如果从数据库中选择的值为 1,如何阻止用户?

javascript - 为什么 babel 将导入的函数调用重写为 (0, fn)(...) ?

javascript - 从 JavaScript 中的文本中提取 <a>