6

誰かがイベント オブジェクトに関連する hasOwnProperty() メソッドを明確にするのを手伝ってくれることを望んでいました。

マウス イベントのクローンを作成しようとしています (最終的に、このオブジェクトは iframe に渡されます)。既に「クローン」関数を作成していますが、ウィンドウ イベント (スクロール、クリックなど) のクローンを作成しようとすると、常に「hasOwnProperty」のすべてのインスタンスが作成されます。 ()' は false を返します。たとえば、オブジェクトを反復処理し、hasOwnProperty() を使用してチェックすると、各プロパティが false を返します。これは標準オブジェクトでは機能しますが、イベント オブジェクトでは機能しません。

これは、イベント オブジェクト内のすべてのプロパティが継承されているためですか? それともコードに問題がありますか?

任意の啓発をいただければ幸いです:)

コードスニペット:

function cloneObject (o_node) {
 var newObject = {};

  for (var child_node in o_node) {

    if (o_node.hasOwnProperty(child_node)) {
    //no object properties are returning true at this point. 

    newObject[child_node] = o_node[child_node];

    }else{
    console.log("!hasOwnProperty()");
    }
  }
 return newNode;
}

function onclick(e){

   var cloned_object_e = cloneObject(e); //returns an empty object;

}

window.addEventListener('click', onclick);
4

2 に答える 2

0

というオブジェクトを作成しましたが、何も定義も追加もしていないnewObjectというオブジェクトを返しました。newNodereturn ステートメントを次のように変更してみてください。

return newObject;

これにより、イベント自体が持ついくつかのプロパティを持つオブジェクトが得られると思います。

于 2015-07-31T19:09:59.333 に答える