这个javascript代码是如何工作的?

时间:2013-03-22 12:48:14

标签: javascript

//1  
var object1 = function(o){

   // some code

};  

//2  
var object2 = new object1({

   method1: //some code  
   method2: //some code  
   method3: //some code

});

//3


document.onkeydown=function(e){     
  var eventKey = e.keyCode || e.charCode;   
  var sel = Coverflow.selected;  
  if(eventKey == 39 || eventKey == 37) {  
        if(eventKey == 39) sel++;  
      else if(eventKey == 37) sel--;  
      sel = sel.limit(0, Coverflow.getListLength() - 1);  
      Coverflow.select(sel);
    }  
}

好吧,我的问题是:

  1. 创建object1时会发生什么,= function()部分是什么意思?
  2. 是指向object1的object2。是创建继承的赋值?
  3. 如果可能,有人可以解释document.onkeydown()中发生了什么。代码用于封面效果。还没有在程序中的任何其他地方调用此函数,那么它是如何执行的?
  4. 谢谢

3 个答案:

答案 0 :(得分:2)

  

创建object1时会发生什么,= function()部分是什么意思?

JavaScript中的函数是第一类对象。它们可以像任何其他函数一样传递和分配。

  

object2是否指向object1?该作业是否会创建继承?

没有。 object2是object1的实例。这就像将object1视为类定义一样。

  

document.onkeydown如何执行?

按下某个键时,将触发一个事件。文档对象中的代码(由浏览器提供)侦听该事件并调用该函数(如果存在)。

MDN has some documentation on how events work如果您想了解更多详情。

答案 1 :(得分:0)

1 - 它是一个名为object1的函数,在运行时定义,更多here

2 - 传递参数的新函数实例(在函数声明中引用为'o')

3 - 函数绑定到onkeydown事件,因此每次按下文档键时都会执行该函数,更多信息here

答案 2 :(得分:0)

JavaScript没有类的概念,但可能有类似的行为。所以我将调用可能是实例化类的对象/函数。

  1. object1是某种由构造函数定义的类,function(){...} part是该类的构造函数。
  2. object2是对object1类实例的引用,它是通过调用带有1个参数的object1类的构造函数来实例化的,该参数本身就是一个对象。
  3. onkeydownkeydown事件处理程序的DOM对象的保留属性。一旦浏览器触发此事件,它将由相关功能(如果存在)处理