01 2010 档案
摘要: 在本章中,我们将分析Prototypejs中关于JavaScript继承的实现。 Prototypejs是最早的JavaScript类库,可以说是JavaScript类库的鼻祖。 我在几年前接触的第一个JavaScript类库就是这位,因此Prototypejs有着广泛的群众基础。 不过当年Prototypejs中的关于继承的实现相当的简单,源代码就寥寥几行,我们来看下。早期Prototypejs...阅读全文
摘要: 在本章中,我们将分析John Resig关于JavaScript继承的一个实现 - Simple JavaScript Inheritance。 John Resig作为jQuery的创始人而声名在外。是《Pro JavaScript Techniques》的作者,而且Resig将会在今年秋天推出一本书《JavaScript Secrets》,非常期待。调用方式调用方式非常优雅: 注意:代码中的C...阅读全文
摘要: 在本章中,我们将分析Douglas Crockford关于JavaScript继承的一个实现 - Classical Inheritance in JavaScript。 Crockford是JavaScript开发社区最知名的权威,是JSON、JSLint、JSMin和ADSafe之父,是《JavaScript: The Good Parts》的作者。 现在是Yahoo的资深JavaScript...阅读全文
摘要: 在第一章中,我们使用构造函数和原型的方式在JavaScript的世界中实现了类和继承, 但是存在很多问题。这一章我们将会逐一分析这些问题,并给出解决方案。注:本章中的jClass的实现参考了Simple JavaScript Inheritance的做法。首先让我们来回顾一下第一章中介绍的例子:function Person(name) {this.name = name;}Person.prot...阅读全文
摘要: 这一章我们将会重点介绍JavaScript中几个重要的属性(this、constructor、prototype), 这些属性对于我们理解如何实现JavaScript中的类和继承起着至关重要的作用。thisthis表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window; 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用。 我们还可以使用app...阅读全文
摘要: 面向对象与基于对象几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例。 类定义了一类事物公共的行为和方法;而实例则是类的一个具体实现。 我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,...阅读全文
摘要: 作用域、闭包、模拟私有属性先来简单说一下变量作用域,这些东西我们都很熟悉了,所以也不详细介绍。var sco = "global"; //全局变量function t() { var sco = "local"; //函数内部的局部变量 alert(sco); //local 优先调用局部变量}t(); //localalert(sco); //global 不能使用函数内的局部变量注意一点...阅读全文
摘要: 类变量/类方法/实例变量/实例方法先补充一下以前写过的方法:在javascript中,所有的方法都有一个call方法和apply方法.这两个方法可以模拟对象调用方法.它的第一个参数是对象,后面的参数表示对象调用这个方法时的参数(ECMAScript specifies two methods that are defined for all functions, call() and apply(...阅读全文
摘要: 类、构造函数、原型先来说明一点:在上面的内容中提到,每一个函数都包含了一个prototype属性,这个属性指向了一个prototype对象(Every function has a prototype property that refers to a predefined prototype object --section8.6.2).注意不要搞混了.构造函数:new操作符用来生成一个新的对象...阅读全文
摘要: 函数javascript函数相信大家都写过不少了,所以我们这里只是简单介绍一下.创建函数:function f(x) {........}var f = function(x) {......}上面这两种形式都可以创建名为f()的函数,不过后一种形式可以创建匿名函数函数定义时可以设置参数,如果传给函数的参数个数不够,则从最左边起依次对应,其余的用undefined赋值,如果传给函数的参数多于函数定...阅读全文
摘要: 数组我们已经提到过,对象是无序数据的集合,而数组则是有序数据的集合,数组中的数据(元素)通过索引(从0开始)来访问,数组中的数据可以是任何的数据类型.数组本身仍旧是对象,但是由于数组的很多特性,通常情况下把数组和对象区别开来分别对待(Throughout this book, objects and arrays are often treated as distinct datatypes.Th...阅读全文
摘要: 看了很多介绍javascript面向对象技术的文章,很晕.为什么?不是因为写得不好,而是因为太深奥.javascript中的对象还没解释清楚怎么回事,一上来就直奔主题,类/继承/原型/私有变量....结果呢,看了大半天,有了一个大概的了解,细细一回味,好像什么都没懂...这篇文章是参考<<javascript-the definitive guide,5th edition>&g...阅读全文
摘要: 2010年来了,新年要有新气象。花了一下午时间,修改了原来的博客皮肤,希望2010年能够彻底拿下js,同时准备学习php.谨以“努力,奋斗!”共勉。阅读全文