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