1

JavaScriptオブジェクトのデフォルトの戻り値を持つ方法があるのだろうか. 例を挙げて説明します。

私は持っている:

Obj1 = {'prop1' = 'something1',
        'prop2' = 'something2',
        'active' = typeof XMLobj.propX === 'undefined' ? false : true} //XMLobj comes from somewhere else

このオブジェクトを別のオブジェクトの一部にしたいので、次のようなものが必要です

If (otherObj.Obj1) { //do something using prop1 and/or prop2 }.

otherObj.Obj1チェックする代わりに、アクティブなフィールドの値を返す場所otherObj.Obj1.active

背後にある理由は、おそらく悪いコードです(私のせいです)。を使用して何かを使用していくつかの関数を作成し If (otherObj.Obj1)ました。当時はそのプロパティを気にしませんでしたが、今はさらに拡張したいので、避けたいです(可能であれば、次のようなものを使用します:

otherObj.Obj1 = typeof XMLobj.propX === 'undefined' ? false : true} //XMLobj comes from somewhere else
otherObj.Obj1Prop1 = 'something1'
otherObj.Obj1Prop2 = 'something2'

何かアドバイス?ありがとう

4

2 に答える 2

0

これは正しくないオブジェクト リテラル表記です。

Obj1 = {'prop1' = 'something1',
        'prop2' = 'something2',
        'active' = true or false}

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

var someCondition = // Make this evaluate to true or false based on whether it's active.
var otherObj = {Obj1 : {prop1: 'something1',
        prop2: 'something2',
        active: someCondition ? true : false}
        };

activeオブジェクトのプロパティを確認する通常の方法:

if(otherObj.Obj1.active) { //do something using prop1 and/or prop2 }.

これを行うとotherObj.Obj1 = true;、オブジェクトが一掃されます

于 2013-06-07T18:23:24.807 に答える
0

オブジェクトを参照するだけでは、JavaScript はオブジェクトからフィールドを返しません。オブジェクト自体を返す必要があります。静的型付け情報を持つ一部の言語では、これが発生する可能性があります (VB はこれを行ったと思います)。JavaScript には静的型付けがないため、オブジェクトを返す必要があります。オブジェクトを返すタイミングと、オブジェクト内の「デフォルト」フィールドを返すタイミングを伝える方法はありません。

于 2013-06-07T18:18:59.333 に答える