0

これは好奇心の問題です。しかし、String.prototypeの前に変数を追加できるかどうか疑問に思っています。

例えば:

$.String.prototype.functionName = function(){};

もちろん、これはうまくいきません。しかし、どうにかしてそれを機能させることはできますか?次のような構文が必要です。

$("Hi").functionName();

セレクターの代わりに()内に文字列を含むjQuery構文。

必要になりたいの$ですが。

以来:

String.prototype.functionName = function(){};
var $ = String;
$("Hi").functionName();

動作しますが、$が不要になるため、 "Hi" .functionName()が動作します。

提案をありがとう。

4

2 に答える 2

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
于 2012-07-11T02:05:10.673 に答える
0

いいえ、これは多少混乱しています。あなたがこのようなものを持っていたら

$.String.prototype.functionName = function(){};

次のように対処する必要があります。

(new $.String("Hi")).functionName();

(一部の括弧はオプションです。)

このようなことができるようにしたい場合:

$("Hi").functionName();

次に、次のように添付する必要があります。

$.prototype.functionName = function(){};

(jQueryのマジックfnパラメーターは、コンストラクター関数のprototypeプロパティの単なるエイリアスであることに注意してください。)

ここでのあなたの根本的な目標は何ですか?

于 2012-07-11T02:06:52.493 に答える