JavaScript 不是面向对象的语言,而是基于对象的语言。很多情况下,往网页中添加 js 代码往往只是简单的写几个函数再把它们指定为某个事件的处理函数。但是当我们想要写自己的类库或者复杂的 js 时,这时候,包的构建或许会是一个不错的选择。
下面说一下我构建包的两种方法:
第一种 : 借鉴 JSON 来构建 js 包。
var Tween = { Linear: function() {}, Quad: { easeIn: function() {}, easeOut: function() {}, easeInOut: function() {} }, Cubic: { easeIn: function() {}, easeOut: function() {}, easeInOut: function() {} }, Quart: { easeIn: function() {}, easeOut: function() {}, easeInOut: function() {} } }
第二种 : 取自 《 JavaScript 实战》一书
var Tween = {}; /*也可以为下面三种*/ // function Tween() {}; // var Tween = new Object(); // var Tween = function() {}; Tween.Linear = function() {}; Tween.Quad = {}; Tween.Quad.easeIn = function() {}; Tween.Quad.easeOut = function() {}; Tween.Quad.easeInOut = function() {}; Tween.Cubic = {}; Tween.Cubic.easeIn = function() {}; Tween.Cubic.easeOut = function() {}; Tween.Cubic.easeInOut = function() {}; Tween.Quart = {}; Tween.Quart.easeIn = function() {}; Tween.Quart.easeOut = function() {}; Tween.Quart.easeInOut = function() {};
个人感觉哈,第一种方法的组织形式更好,结构更加清晰,简洁易读。第二种方法便于我们随心所欲的往包中添加我们想要添加的任何内容。各有优点。
此中要调用包中的对象或函数不需像 java 等面向对象语言那番,需事先实例化对象。在 JavaScript 中,构建出来的所谓的“类”便是对象,可以直接当做函数来调用。例如,我可以这样调用 Quad 中的 easeIn 方法。
div.style.left = Tween.Quad.easeIn(……);
而在 java 或其他的 OOP 语言中,需要事先实例化对象。
var move = new Tween();
这样子实例化一个对象后,才能实现对对象中各种函数等的调用。