7

JavaScript では、存在しないインデックスまたはプロパティを指定すると動的に作成されないため、自動有効化は未定義の構造を「デリファレンス」することだけに関係していますか? しかし、これは自動有効化ではないでしょうか?最初に基になる構造をオブジェクトまたは配列として宣言する必要があります。

4

2 に答える 2

14

名前空間は、JavaScript で自動有効化が便利な領域の 1 つです。現在、オブジェクトを「名前空間」にするには、これを行う必要があります。

var foo = { bar: { baz: {} } };
foo.bar.baz.myValue = 1;

自動有効化が JavaScript でサポートされている場合、最初の行は必要ありません。JavaScript のオブジェクトに任意のプロパティを追加できるのは、JavaScript が動的言語であるためですが、完全な自動有効化ではありません。

于 2011-10-07T18:37:59.707 に答える
11

ES6 は autovivification のProxy実装に使用できます。

var tree = () => new Proxy({}, { get: (target, name) => name in target ? target[name] : target[name] = tree() });

テスト:

var t = tree();
t.bar.baz.myValue = 1;
t.bar.baz.myValue
于 2017-10-23T17:55:54.777 に答える