0

オブジェクトを返すこの関数があります:

String.prototype.test = function(a,b){
    var ob = {};
    ob[a] = b;
    return this || ob
}

//usage
"Test".test('hi','hello');

.hiテストに添付されていない場合は、文字列を返すようにします。

したがって、その例では、次のものが必要になります。

"Test".test('hi','hello').hi;//returns: hello

動作するために、しかしそれから私も必要です:

"Test".test('hi','hello'); //returns Test

||動作させるために、リターンで使用してみましたが、動作しません。助けてくれてありがとう。

4

2 に答える 2

3

戻り値を、戻り値で何が起こるかに依存させることは不可能です。

Stringただし、プロパティを持つオブジェクトを返すことはできhiます。

プロダクションコードではこれを行わないでください。非常に醜く、誰もそれを期待していません。

String.prototype.doStuffThatNobodyExpects = function(a, b) {
    var s = new String(this);
    s[a] = b;
    return s;
};

繰り返しになりますが、本番コードではこれを行わないでください。非常に醜く、誰もそれを期待していません。

デモ:

js> var s = 'Test'.doStuffThatNobodyExpects('hi', 'hello');
js> print(s);
Test
js> print(s.hi);
hello
于 2012-07-27T23:23:03.143 に答える
2

それはあなたが望むものの厄介な構造ですが...

String.prototype.test = function(a,b){
    this[a]=b;
    return this;
}

//usage
document.write("Test".test('hi','hello'));
document.write("Test".test('hi','hello').hi);

jsFiddle: http: //jsfiddle.net/XUcYy/ </ p>

于 2012-07-27T23:31:15.810 に答える