这只是好奇心的问题。但我想知道我是否可以在String.prototype前面添加一个额外的变量。
例如:
$.String.prototype.functionName = function(){};
当然我重申这不起作用。但我可以以某种方式使它工作吗?我想要一个语法:
$("Hi").functionName();
jQuery语法,只是在()而不是选择器中使用字符串。
我希望$
是必需的。
自:
String.prototype.functionName = function(){};
var $ = String;
$("Hi").functionName();
可以使用,但它不需要$,所以“Hi”.functionName()可以工作。
感谢您的建议。
答案 0 :(得分:1)
我不确定“jQuery语法”是什么意思,但如果你的意思是使用$
变量作为对操作字符串的函数的引用,那就是非常简单...
;(function(window, undefined) {
var MyStringLib = function(s) { this.string = s; };
window.$ = function(s) { return new MyStringLib(s); };
MyStringLib.prototype.addFooBar = function() {
this.string += "foobar";
return this;
};
MyStringLib.prototype.reverse = function() {
this.string = this.string.split('').reverse().join('');
return this;
};
MyStringLib.prototype.get = function() {
return this.string;
};
})(this);
然后像这样使用库......
var result = $("My name is ").addFooBar().reverse().get();
alert(result); // raboof si eman yM
答案 1 :(得分:0)
不,这有点困惑。如果你有类似的东西
$.String.prototype.functionName = function(){};
你必须像这样解决它:
(new $.String("Hi")).functionName();
(某些括号是可选的。)
如果你想做这样的事情:
$("Hi").functionName();
然后你需要像这样附上它:
$.prototype.functionName = function(){};
(请注意,jQuery的magic fn
参数只是其构造函数的prototype
属性的别名。)
你的目标是什么?