我是JavaScipt的新手,我无法理解下面的代码
maskat.lang.Class.declare("maskat.key.KeyEventManager", {
_static: {
/** @scope maskat.key.KeyEventManager */
getInstance: function() {
var self = arguments.callee;
if (!self.instance) {
self.instance = new this();
}
return self.instance;
}
}
});
在上面的代码中,“_static”这个词意味着什么?这是我的一个疑问,当我看到Javascript库代码时,我有很多疑问。
我可以在Javascript中编写这么多代码,但是我无法理解上面那些编码技术。
我必须参考哪本书来理解这种复杂的编码技术。
答案 0 :(得分:2)
_static
只是“动态”创建的新对象的属性,并作为参数传递给declare
函数。它被分配了另一个具有getInstance
属性的对象,该属性包含一个函数。 _static
不是JavaScript关键字。
当您看到var x = { }
之类的内容时,您就会知道正在创建新对象并将其分配给新变量x
。在这些对象中,使用冒号分配新属性,如x = { y : 2 }
。因此,您可以访问y
,如:
var x = { y : 2 };
console.log( x.y );
// or
console.log( x['y'] );
答案 1 :(得分:1)
您能为maskat
提供图书馆的来源吗?它更像是一个第三方库,它提供了基于类的类似JavaScript,因为JS使用prototyping,这比基于类的OOP更不常见。
有许多库为javascript提供了基于类的OOP,模拟了基于类的oop。你可以看看他们看模式。
<强>更新强>
既然你要书,我会为你提供学习JS的参考