このような:
function show (message)
{
alert(message.head);
// or
alert(message['head']); // Note the quotes
}
それへのあなたの呼び出しは大丈夫です。
デフォルトを提供するには、Davidが指摘しているように、不思議なほど強力な||
演算子を使用できます。
function show (message)
{
var head = message.head || 'error',
body = message.body || 'msg';
alert(head);
}
(上記は、渡されたオブジェクトの変更を回避するという点で、Davidのアプローチとは少し異なりmessage
ます。これは、関数がオブジェクトを所有していないため、通常はお勧めできません。呼び出し元は所有します。)
これが機能するのは、head
(たとえば)がmessage
オブジェクト上にまったくない場合、それは偽であり、最終的ににhead = message.head || 'error'
割り当て'error'
られるためhead
です。これは便利なトリックですが、落とし穴があります。すでに偽の値を持っている可能性があり、それが有効である場合は、このトリックhead
を使用したくないでしょう。||
代わりに、in
以下を確認するために使用できます。
function show (message)
{
var head = 'head' in message ? message.head : 'error',
body = 'body' in message ? message.body : 'msg';
alert(head);
}
それが偽であるかどうかに関係なく、それが存在する場合からの値を使用しますmessage
。