这篇开始会分析流行的js库之写类方式。各种库的写类方式虽然千奇百怪,但仍然逃离不了本质---用构造函数和原型
来组装类。
6、Prototype.js的写类方式
//prototype.js中的代码
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
//简化后的
function Clazz() {
return function(){
this.initialize.apply(this,arguments);
}
}
如下步骤写一个类,
//类名Person
var Person = Class.create();
//通过原型重写来定义Person
Person.prototype = {
initialize : function(name) {
this.name = name;
},
getName : function() {
return this.name;
},
setName : function(name) {
this.name = name;
}
}
//创建对象
var p = new Person("jack");
console.log(p.constructor == Person);//false
initialize完成对象的初始化(相当于构造函数),方法依次往下写即可。
有个问题,通过这句p.constructor == Person为false可以看到,这正是Prototype.js一个小小的缺陷。原因是重写了Person的原型。为了使constructor能指向正确的构造器,只需在原型重写时维护好constructor属性即可。
Person.prototype = {
constructor : Person,//注意这里
initialize : function(name) {
this.name = name;
},
getName : function() {
return this.name;
},
setName : function(name) {
this.name = name;
}
}
好了,这时候p.constructor == Person就是true了。
- a.rar (416 Bytes)
- 下载次数: 11
分享到:
相关推荐
本文将探讨JavaScript中的七种创建类的方式,结合给定的标签和文件,我们主要关注源码解析和工具应用。 1. **函数构造器** JavaScript中最基础的类创建方式就是使用函数构造器。通过`function`关键字定义一个函数...
标题提到的"javascript写类方式之九"暗示了文章可能讨论了JavaScript中九种不同的类定义方法。在JavaScript ES6之前,我们通常使用函数构造器和原型链来模拟类的行为。随着ES6的引入,类语法被正式引入,使得代码...
在了解JavaScript中类的写法时,我们可以从多个流行的JS库中汲取灵感。这些库虽然提供各自独特的语法和结构,但它们共同的核心是基于构造...理解不同写类方式的原理有助于我们更好地掌握JavaScript这门灵活多变的语言。
在JavaScript编程中,类的创建和组织是一个重要的概念,特别是在大型项目中,为了保持代码的可维护性和可读性。本文将详细介绍YUI(Yahoo User Interface Library)2.7.0版本中的类定义方法,以及如何利用YUI提供的...
JavaScript有六种基本数据类型:String(字符串)、Number(数值)、Boolean(布尔值)、Null(空值)、Undefined(未定义)和Object(对象)。这些类型构成了JS编程的基础,理解和掌握它们是学习JavaScript的第一步...
《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...
本示例中的“JavaScript写出的时钟”就是一个很好的实例,展示了如何利用JavaScript、HTML和CSS这三种技术来创建一个动态显示时间的模拟时钟。 首先,我们从HTML基础开始。HTML(超文本标记语言)是构建网页结构的...
ES6(ECMAScript 2015)引入了许多新特性,如箭头函数、模板字符串、类、解构赋值、模块导入等,大大提高了JavaScript的可读性和效率。了解并掌握这些新特性,可以使代码更加现代和高效。 十、性能优化与最佳实践 ...
一个简单的实现方式是创建一个JavaScript对象,其中包含节点的值、子节点数组和其他属性(如ID、父节点等)。 ```javascript function TreeNode(value) { this.value = value; this.children = []; } ``` 2. **...
8. **代码组织**:对于复杂的计算器,JavaScript代码可能会采用模块化或面向对象的编程方式,将各个功能封装在不同的函数或类中,提高代码的可读性和可维护性。 综上所述,JavaScript编写的计算器是一个集成了事件...
通过研究这些代码,开发者可以提升自己的JavaScript技能,了解如何写出高效、可维护的代码。 总的来说,这个压缩包里的资源是学习和提高JavaScript特效开发的宝贵资料。它们可以帮助开发者掌握如何使用JavaScript...
《JavaScript权威指南(第六版)》是一本深入探讨JavaScript编程语言的经典著作,旨在为开发者提供全面、详尽且准确的JavaScript知识。这本书以其严谨的结构和深入的技术解析,被誉为JavaScript学习者的必备参考书籍...
- **区分大小写**:JavaScript是一种区分大小写的语言,这意味着`Variable`和`variable`会被视为两个不同的标识符。 - **注释**:单行注释使用`//`,多行注释则使用`/* ... */`。 ```javascript // This is a ...
《Effective JavaScript》是由David Herman编著的...通过《Effective JavaScript》,开发者不仅能深化对JavaScript语言的理解,还能学习到如何写出更专业、更具可维护性的代码,从而在JavaScript的进阶道路上更进一步。
此外,教程还会介绍JavaScript的最新版本ES6(ECMAScript 6)及以后的特性,如类和模块系统。类提供了面向对象编程的语法糖,而模块系统则解决了代码组织和重用的问题。理解这些新特性有助于写出更现代、更可维护的...
面向对象编程是现代软件开发的重要思想,这部分内容讲解了JavaScript中的类、对象、继承、构造函数等OOP概念,以及如何在ECMAScript环境中实现这些概念。 4. **设计模式之代理模式** 设计模式是解决常见编程问题...
在JavaScript编程中,将功能封装成对象是一种常见的代码组织方式,可以提高代码的复用性和可维护性。在这个场景中,我们讨论的是一个基于JavaScript实现的计算器,它已经被封装为一个对象,便于调用和使用。以下是这...