2016-04-07 6 views
-2

Wenn ich ein JS Objekt wie diese:Rückkehr Standardwert in Objekt

myObject = { 
    value: 'test value', 
    editable: true 
} 

ich myObject will value direkt zurückzugeben, wenn myObject in Code anfordert, während noch myObject.editable ermöglicht zugegriffen werden. Ich habe versucht, Getters zu suchen, aber das scheint nicht zu dem zu passen, was ich erreichen möchte.

+0

_requesting myObject_? Wie greifen Sie darauf zu? Was hast du bisher versucht ? – Rayon

+0

Wenn Sie möchten, dass 'myObject' die Zeichenfolge 'test value' zurückgibt und' myObject.editable' zur '' '' '' '' '' '' '' '' '' '' '' '' zurückgibt, tut es mir leider nicht möglich. – Roy

+0

Rayon, nur durch den Aufruf von 'myObject' –

Antwort

1

Ich denke, was Sie suchen, ist das Äquivalent von toString in Java oder __toString in PHP. Leider existiert diese magische Funktion nicht in Javascript.

eine einfache Abhilfe könnte sein:

var myObject = function() { 
    var _value: 'test value', 
    var editable: true, 

    // fluent get/set for value 
    function value(value) { 
    if(typeof value === 'undefined') { 
     return _value; 
    } 
    _value = value; 
    return this; 
    } 

    function isEditable() 
    return editable; 
    } 

    return { 
    value: value, 
    isEditable: isEditable 
    } 
} 

so können Sie den Wert über myObject.value() im Code zugreifen

+0

muss ich noch '.value()' aufrufen. Ich möchte den Wert direkt sehen, wenn er 'myObject' anfordert. –

+0

Ja, leider gibt es in javscript keine Möglichkeit, das zu erreichen, was Sie tun möchten. Meine Antwort ist nur ein Workaround. – sics