有谁可以告诉我这是如何/为什么这在ff和即...

时间:2011-10-30 02:47:46

标签: javascript

--script--
function myalert(name){
  var obj=this;
  obj.run=run;
  function run(){
    alert(name);
  }    
  div=document.createElement('div');
  div=document.body.append(div);
  txt=document.createTextNode('alert');
  div.appendChild(txt);
  //**
  div.onclick=function(){ obj.run(); }
  //**
}
--html--
<div onclick="myalert('mee');">matt</div>

我发现奇怪的是,obj.run()在函数外部调用,来自dom元素,并且函数参数也被保留

这种方法也有任何陷阱吗?

2 个答案:

答案 0 :(得分:1)

这称为关闭

此处有a lot to read

答案 1 :(得分:0)

您正在寻找对“词汇范围”的理解。以下是一个解释:What is lexical scope?