如果你偏爱过程式编程,你可以这样:
/*Start and stop animations using functions.*/
function startAnination() {
....
}
function stopAnination(){
....
}
这种做法很简单,但是你无法创建可以保存状态并且具有一些仅对其内部状态进行操作的方法的动画对象。
下面的代码定义了一个类,你可以用它创建这种对象:
/*Anim class.*/
var Anim = function(){
....
};
Anim.prototype.start = function(){
....
};
Anim.prototype.stop = function(){
....
};
/*Usage.*/
var myAnim = new Anim();
myAnim.start();
....
myAnim.stop();
上述代码定义了一个名为Anim的类,并把两个方法赋给该类的prototype的属性。
如果你更喜欢把类的定义封装在一条声明中,则可以改用下面的代码:
/*Anim class, with a slightly different syntax for declaring methods*/
var Anim = function(){
....
};
Anim.prototype = {
start : function(){
....
};
stop : function(){
....
};
};
这在传统的面向对象程序员看来肯呢过更眼熟一点,他们习惯于看到类的方法声明内嵌在类的
声明之中。要是你以前用过这样的编程风格,可能想尝试下下面的是里。
/*Add method to the Function object that can be used to declare methods*/
Function.prototype.methed = function(name, fn){
this.prototype[name] = fn;
};
/*Anim class, with ,methods created using a conbenience ,method.*/
var Anim = function(){
....
};
Anim.method('start', function(){
.....
});
Anim.method('stop', function(){
....
});
Function.protytype.method用于为类添加新方法。他有两个参数,第一个是字符串,表示新方法
的名称;第二个是用作新方法的函数。
你可以进一步修改Function.prototype.method, 使其可被链式调用。这只需要在他返回this
值即可:
/*This version alllows the calls to be chained.*/
Function.prototype.method = function(name, fn){
this.prototype[name] = fn;
return this;
};
/*Anim class, with methods created using a convenience and chaining.*/
var Anim = function(){
....
};
Anim.
method('start', function(){
....
}).
method('stop', function(){
....
});
分享到:
相关推荐
2. **对象和原型**:深入探讨了JavaScript的面向对象特性,包括对象字面量、构造函数、原型链、继承机制等,这是理解JavaScript灵活性的关键。 3. **作用域和闭包**:解析了JavaScript中的变量作用域规则以及闭包的...
作者还会详细介绍JavaScript的对象系统,这是JavaScript灵活性和动态性的源泉,也是许多初学者遇到挑战的地方。 接着,书中将深入讨论JavaScript的高级特性,如闭包、原型继承、作用域和作用域链,以及异步编程中的...
因此,使用如"babel-plugin-runtyper-master"这样的工具进行运行时类型检查,可以在保持JavaScript灵活性的同时,引入静态类型语言的一些优势,提高代码质量和开发效率。 在实际应用中,这个插件可能通过以下方式...
在JavaScript中,这种关系得到了独特的体现,因为JavaScript允许数据直接作为代码执行,反之亦然,这是JavaScript灵活性的一个关键方面。 面向对象编程(OOP)是现代编程的重要思想,JavaScript支持这一理念,通过...
此外,它还支持原型继承和闭包等特性,这些都是JavaScript灵活性和强大功能的体现。 在Web开发中,JavaScript与HTML和CSS共同构成了前端开发的三大基础技术。HTML负责页面结构,CSS负责样式,而JavaScript负责行为...
未来的研究可能集中在如何在保持JavaScript灵活性的同时,通过语言设计或工具支持来减少潜在的错误和性能瓶颈。 6. 结论 JavaScript的动态性是其强大而灵活的根源,但也带来了挑战。我们的研究强调了理解和量化...
本书将详细介绍函数的定义、调用以及闭包等高级特性,这些都是JavaScript灵活性和强大功能的关键所在。此外,书中还将涵盖原型链、面向对象编程,以及如何通过构造函数和原型模式来创建复杂的对象关系。 随着ES6...
Packem,一个预编译的通用JavaScript模块捆绑器,是为了解决现代Web开发中的性能、灵活性和可扩展性需求而设计的。在JavaScript开发领域,模块打包是必不可少的环节,它将分散的源代码文件合并成单一的可执行文件,...
数组作为JavaScript中重要的数据结构,其章节详述了数组的定义、length属性、数组的空位处理以及ECMAScript 5中新增的数组方法(如map、forEach等),这些方法极大地增强了数组操作的灵活性和功能性。 函数章节讲解...
总结来说,Drag5是一个专为简化和增强JavaScript拖拽功能设计的框架,它的简易性和灵活性使得开发者能够快速构建出具有高度定制性的拖拽效果,从而提升Web应用的用户体验。通过深入理解Drag5的工作原理和使用方法,...
JavaScript.Net 是一个基于.NET框架...总的来说,JavaScript.Net为.NET开发者提供了一种强大的方式来利用JavaScript的灵活性和广泛的功能,使得两种语言可以更紧密地协同工作,提升了.NET应用程序的可扩展性和创新性。
这些库和框架提供了丰富的功能,如状态管理、路由控制和组件化开发,进一步增强了JavaScript的灵活性和实用性。 总结来说,JavaScript的灵活运用体现在其动态类型、函数作为一等公民、事件驱动编程、DOM操作、异步...
JavaScript还具有动态类型和弱引用的特点,这使得它在处理数据时具有灵活性,但也可能导致一些陷阱。书中会讨论这些特性的使用和潜在问题,帮助开发者避免常见的错误。 事件驱动模型是JavaScript在Web开发中的一个...
它的主要作用是降低耦合度,提高代码的灵活性和可扩展性。 4. 装饰者模式(Decorator Pattern): 装饰者模式是动态地给一个对象添加一些额外的职责。它的主要作用是使对象可以在不改变其外部接口的情况下增加新的...
例如,一个案例可能演示了如何通过构造函数创建自定义对象,而另一个案例则可能涉及到闭包的使用,以此展示JavaScript的动态性和灵活性。 其次,DOM(Document Object Model)操作是JavaScript的一个重要方面。案例...
它以其灵活性、易学性和强大的功能,使得网页交互变得生动有趣。这个压缩包包含的资源是一系列关于JavaScript学习的重要参考资料,包括"javascript源码大全"、"JAVASCRIPT教程"、"JavaScript语言参考手册"(两本)的...
它以其灵活性、易学性和强大的功能,使得开发者能够创建交互性极强的网页应用。《精通JavaScript》这本书深入浅出地介绍了JavaScript的各个方面,旨在帮助读者从新手进阶到高级开发者。其附带的源代码压缩包“精通...
由于JavaScript采用弱类型系统,变量可以在运行时改变其数据类型,这为编程提供了灵活性,但也可能导致一些难以预见的问题。此外,JavaScript还支持面向对象编程,允许开发者创建和操作对象,通过对象的方法和属性...