成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼
JavaScript开发创建类:向模块化进军
<DIV class= pages??> <DIV id= numpage??>
在解说MVC 的实质之前,我们起首给人人补习一下根底常识,比方JavaScript 的类和事情。只要打下一个坚实的根底,才干更好地进修、了解更高级的概念。

关于静态的类来说,JavaScript 对象直接量就曾经够用了,但它对运用承继和实例来创立经典的类往往更有协助。有需要强调一下:JavaScript 是基于原型的编程言语,并没有包括内置类的完成。但经过JavaScript 可以随便地模仿出经典的类。
JavaScript 中的类口碑并不太好,由于“不敷JavaScript”而饱受批判。jQuery 并没有触及太多架构办法和承继形式,这让JavaScript 开拓者确信本人不用思索太多架构性的器械,甚至感觉类的用途不大或爽性禁用类。实践上,类是另一种有效的东西,作为一名适用主义者,我置信类在JavaScript 中的主要性一点点不亚于它在其他现代编程言语中的主要性。
JavaScript 中并没有真正的类,但JavaScript 中有结构函数和new 运算符。结构函数用来给实例对象初始化属性和值。任何JavaScript 函数都可以用做结构函数,结构函数必需运用new 运算符作为前缀来创立新的实例。
new 运算符改动了函数的执行上下文,还改动了return 语句的行为。实践上,运用new和结构函数很相似于传统的完成了类的言语:
var Person = function(name) {
this.name = name;
};
// 实例化一个Person
var alice = new Person('alice');
// 反省这个实例
assert( alice instanceof Person );
结构函数的定名凡间运用驼峰定名法,首字母大写,以此和通俗的函数区分隔来,这是一种习气用法。记住这一点十分主要,由于你不会但愿用省略new 前缀的方法来挪用结构函数。
// 不要这么做!
Person('bob'); //=> undefined
这个函数只会返回undefined,而且执行上下文是window(全局)对象,你无意间创立了一个全局变量name。挪用结构函数时不要丢失落new 要害字。
当运用new 要害字来挪用结构函数时,执行上下文从全局对象(window)酿成一个空的上下文,这个上下文代表了重生成的实例。因而,this 要害字指向当时创立的实例。虽然了解起来有些绕,实践上其他言语内置类机制的完成也是如斯。
默许状况下,假如你的结构函数中没有返回任何内容,就会返回this——当时的上下文。要否则就返回恣意非原始类型的值。比方,我们可以返回一个用以新建一个新类的函数,第一步要做的是创立本人的类模仿库:
var Class = function(){
var klass = function(){
this.init.apply(this, arguments);
};
klass.prototype.init = function(){};
return klass;
};

var Person = new Class;
Person.prototype.init = function(){
// 基于Person 的实例做初始化
};
// 用法:
var person = new Person;
令人隐晦的是,因为 JavaScript 2(http://www.mozilla.org/js/language/js20-1999-02-18/
classes.html)标准从未被完成过,class 不断都是保存字。最经常见的做法是将变量名class 改为_class 或

