posts - 3,  comments - 2,  trackbacks - 0
            2007年11月2日
          誰能告訴我為什么這個blog在FireFox里總是報錯啊(js錯誤)
          posted @ 2007-11-02 10:20 zozilla 閱讀(252) | 評論 (2)編輯 收藏
          construtor接受一個key word argument和 一個srcNode。
          construtor的調用結束之后kwArgs的屬性會被合并到新生成的對象中。如果kwArgs中有和prototype中同名的屬性,后果是這樣:

          dojo.declare("some.Sample", [some.widget],
          {
          text: "",
          constructor: function(kwArgs) {
          this.text = kwArgs['text'].toUpperCase();
          },
          postCreate: function() {
          console.info(this.text); // 你以為應該是大寫對吧
          }
          });

          new some.Sample( {text: "hello, world"} );

          結果:
          hello, world //其實還是小寫, 因為kwArgs中的text被合并進當前對象的狀態,已經是upper case的對象的text又被kwArgs中的小寫覆蓋了。

          關于constructor的kwArgs是如何確定的:
          在new XXX()的情況下,是在代碼中確定的,像上面的例子。這是比較常見的情況。
          如果對象是由標簽方式生成的(就是使用dojo.parser),kwArgs是由parser根據prototype的屬性讀取標簽的attribute生成的,如果標簽上有不在prototype中的屬性,這個屬性不會被包含在kwArgs的屬性中。

          dojo.declare("some.Sample", [some.widget],
          {
          // text: "", 被去掉了
          constructor: function(kwArgs) {
          console.info(kwArgs['text']);
          }
          });

          使用new XXX()的方式:
          new some.Sample({text: "hello, world"});

          結果:
          hello, world

          使用標簽方式:
          ...
          <div dojoType="some.Sample" text="hello, world" />;
          ...


          結果:
          undefined // 因為text不是prototype的一個屬性
          posted @ 2007-11-02 10:17 zozilla 閱讀(636) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 罗平县| 朝阳县| 阜平县| 内黄县| 贞丰县| 卓尼县| 福泉市| 五家渠市| 成都市| 富蕴县| 汝南县| 上林县| 宝兴县| 梁平县| 阿荣旗| 广宗县| 乌兰察布市| 吴桥县| 通渭县| 巴塘县| 丹棱县| 社旗县| 桐乡市| 额济纳旗| 通渭县| 安福县| 沙雅县| 华亭县| 南靖县| 蒲城县| 徐州市| 剑川县| 霍邱县| 石棉县| 大港区| 临沭县| 梓潼县| 尖扎县| 贡山| 辽阳市| 舒兰市|