0

この操作の方法を理解するのに問題があります:

tmp.setAttribute(i, prop[i]);

この for ループを通過します。prop-array が 2 つの引数を作成する方法。私が理解しているように、それvar = iは単なる変数ですよね?しかし、どうやらそれはそのようにメソッドの1:st引数になりますか?

御時間ありがとうございます。

http://jsbin.com/ozoqob/2/edit

var MYAPP = MYAPP || {}; 

MYAPP.dom = {};
   MYAPP.dom.Element = function(type, prop){
     var tmp = document.createElement(type);
     for (var i in prop) {
       tmp.setAttribute(i, prop[i]);
       /*
       WHAT I DONT UNDERSTAND IS HOW THIS FOR-LOOP DIVIDE THE ARRAY IN TWO ARGUMENTS?? BEACAUSE 'I' IS JUST A VARIABLE WHICH IS USED TO LOOP THRU THE ARRAY BUT APPARENTLY NOT RIGHT?
       */
       console.log(i); // how? is this arguments divided?
       console.log(prop[i]);
     }
  return tmp; 
   };

var el1 = new MYAPP.dom.Element(
       'a',
       {href:'http://phpied.com'}
   );

console.log(el1);
4

2 に答える 2

1

2つのコンセプト:

  1. JavaScript のすべてのオブジェクトはハッシュ テーブルであるため、キーによってそのプロパティ値にアクセスできますobj[key]
  2. JavaScript の for-in ループは、(値をループする代わりに) ターゲット オブジェクトのキーをループします。

コードではfor (var i in prop)、オブジェクト内のすべてのキーをループし、prop各キーを に格納しますi。したがって、各キーiについて、その値を で取得できますprop[i]

于 2013-03-20T11:09:13.893 に答える
0

メソッドの2番目の引数としてオブジェクトを渡します。for...in次に、そのオブジェクトのプロパティをループで列挙します。ループが繰り返されるたびに、iはオブジェクトのプロパティの識別子をprop[i]参照するため、そのプロパティの値を参照します。

var prop = {
    prop1: "value1",
    prop2: "value2"
};

for (var i in prop) {
    console.log(i); // "prop1", "prop2"
    console.log(prop[i]); // "value1", "value2"
}

この動作は仕様で説明されており、上記の例にあると想像すると、この行で要約されますPi

[[ Enumerable ]]属性がtrueであるobjの次のプロパティの名前をPとします。

于 2013-03-20T10:54:10.457 に答える