作为测试,我写了这个 fn 有效:
$.fn.doubleup = function(){
this.html(this.html()*2);
};
$('div').doubleup();
我试图编写一个类似的函数来在如下数字上运行,但这不起作用:
$.fn.doubleup2 = function(){
this = (this * 2);
};
var n = 2;
n.doubleup2();
是否可以编写在变量或字符串上运行的 fn?
作为测试,我写了这个 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());