日期:2014-05-16  浏览次数:20393 次

javascript语法问题
var Drag = {

  obj : null,
  init : function()
  { o.onmousedown = Drag.start;
  .........................
  .........................
  .........................
  o.root.onDragStart = new Function();
  },
  start : function(e)
  { ...................
  ...................
  o.root.onDragStart(x, y);
  },
  drag : function(e)
  {
  },
  end : function()
  {
  },
  fixE : function(e)
{
}
};

从外部导入js文件.这是js文件的主干写法,这种写法中Drag中的变量obj是全局变量,函数中的变量是局部变量???


当我在自己写的函数调用onDragStart函数时,为什么o.root.onDragStart= function(x, y) {},
就能把o.root.onDragStart(x, y);中的值传给function(x, y) {}中的参数??????

------解决方案--------------------
obj是Drag对象的一个属性

o.root.onDragStart= function(x, y) {}
是定义一个函数啊,
o.root.onDragStart(x, y);
就是调用函数

函数定义方法
var x = function(xx,yy){}


function xx(xx,yy){}类似

参见
http://software.intel.com/zh-cn/articles/javascript-first-class-citizen-function/?cid=sw:prccsdn229032