6

次の拡張メソッドをプロトタイプに含める必要があるプロトタイプ モデルがあります。

String.prototype.startsWith = function(str){
    return (this.indexOf(str) === 0);
}

例: [JS]

sample = function() {
    this.i;
}

sample.prototype = {
    get_data: function() {
        return this.i;
    }
}

プロトタイプ モデルでは、拡張メソッドまたはその他の方法を使用して、JS プロトタイプ モデルで拡張メソッドを作成するにはどうすればよいですか。

4

3 に答える 3

13

文字列で新しいメソッドを呼び出す:

String.prototype.startsWith = function(str){
    return (this.indexOf(str) === 0);
}

次のように単純にする必要があります。

alert("foobar".startsWith("foo")); //alerts true

2 番目の例では、メンバー変数「i」を設定するコンストラクターが必要であると仮定します。

function sample(i) { 
    this.i = i;     
}

sample.prototype.get_data = function() { return this.i; }

これは次のように使用できます。

var s = new sample(42);
alert(s.get_data()); //alerts 42
于 2009-09-11T09:11:18.443 に答える
1

ただし、コンストラクター関数は大文字で始める必要があります。

function Sample(i) { 
    this.i = i;     
}

var s = new Sample(42);
于 2009-09-11T09:57:51.920 に答える
0

これがどの程度正しいかはわかりませんが、このコードを試してください。それは私のためにIEで働いた。

JavaScript ファイルに追加します。

String.prototype.includes = function (str) {
    var returnValue = false;

    if(this.indexOf(str) != -1){

        returnValue = true;
    }

    return returnValue;
}
于 2017-07-06T05:30:13.553 に答える