0

次のようなものがあるとします。

network = {
  post: function(t) {
    console.log(t); }
  protocol: {
    init: function() {
      /* network.post("init") */ } } }

コメント部分、どのようにすれば network.protocol.init 関数がある種の相対リンクを介して network.post を呼び出せるようになりますか? network.protocol はどのようにネットワーク変数を見つけることができますか?

ありがとう。:)

4

1 に答える 1

1

これは、オブジェクト リテラル構文の制限です。あなたはそれをすることはできません。

最良のオプションは、オブジェクトnetworkのプロパティを介して参照しprotocol、オブジェクト リテラル構文を介してオブジェクトを宣言した直後に追加することです。

network = {
  post: function(t) {
    console.log(t); }
  protocol: {
    init: function() {
      this.network.post("init") } } }

network.protocol.network = network;

...これは、networkプロパティの存在がそれ自体の実行まで延期されるため機能しinitます。

于 2013-05-19T00:39:54.657 に答える