0

テストとして、動作するこの fn を書きました:

$.fn.doubleup = function(){
    this.html(this.html()*2);
};

$('div').doubleup();

以下のような数値で実行する同様の関数を作成しようとしましたが、これは機能しません。

$.fn.doubleup2 = function(){
    this = (this * 2);
};

var n = 2;

n.doubleup2();

変数または文字列で実行される fn を作成することは可能ですか?

4

1 に答える 1

4

あなたのシナリオでは、jQuery をまったく使用しません。たとえば、数値を 2 倍にしたい場合は、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());
于 2013-08-29T07:58:12.150 に答える