dojo1.7翻译定义类(Classy JavaScript with dojo/_base/declare)原文地址:http://dojotoolkit.org/documen
dojo1.7翻译 定义类(Classy JavaScript with dojo/_base/declare)
原文地址:http://dojotoolkit.org/documentation/tutorials/1.7/declare/
?
dojo/_base/declare模块是一个创建类的基础模块。他可以用来通过多继承创建灵活的类。dojo,dijit,和dojox都是使用了decalre。
?
开始请确保你已经了解了模块的相关知识。
?
通过dojo创建基本的类declare功能是在dojo/_base/declare模块中定义的。它接收三个参数className,superClass,properties
?
ClassName
这个属性声明了一个类名,声明后,名子将被放入到全局范围。className可以使用继承类声明。
?
有名子的类
?this.inherted全部的重写父类的方法当然是可行的,但有的时候在构造函数中使用继承链可以有效的保护原有的功能。这也就是this.iinherited(XXX)这个方法的作用。这个方法调用了父类中的同名的方法
// Define class Avar A = declare(null, { myMethod: function(){ console.log("Hello!"); }}); // Define class Bvar B = declare(A, { myMethod: function(){ // Call A's myMethod this.inherited(arguments); // arguments provided to A's myMethod console.log("World!"); }}); // Create an instance of Bvar myB = new B();myB.myMethod(); // Would output:// Hello! // World!?this.inheried方法可以在子类中的任何时候进行调用。
?
结论declare是创建模块所需要的非常重要的方法。重用declare可以重创建出更多更复杂的模块结构。
