1
//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. 是 object2 指向 object1。该分配是否创建了继承?
  3. 如果可能的话,有人可以解释 document.onkeydown() 中发生了什么。该代码用于覆盖流效果。这个函数也没有在程序的其他任何地方调用,那么它是如何执行的呢?

谢谢你

4

3 回答 3

2

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

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

object2 是否指向 object1?该分配是否创建了继承?

No. object2 是 object1 的一个实例。这就像将 object1 视为类定义一样。

如何document.onkeydown被执行?

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

如果您需要更多详细信息,MDN 有一些关于事件如何工作的文档。

于 2013-03-22T12:55:38.273 回答
0

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

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

3 - 函数绑定到onkeydown事件,所以每次在文档上按下键时都会执行,更多信息在这里

于 2013-03-22T12:56:19.677 回答
0

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

  1. object1是由构造函数定义的某种类,function(){...}part 是该类的构造函数。
  2. object2是对object1类实例的引用,它是通过调用object1具有 1 个参数的类的构造函数来实例化的,它本身就是一个对象。
  3. onkeydown是 DOM 对象为keydown事件处理程序保留的属性。一旦浏览器触发此事件,它就会由相关函数处理(如果存在)
于 2013-03-22T12:58:09.583 回答