你可能知道JavaScript不是一个完全基于OOP的语言。当然也有一些方法来处理这个问题,你仍然可以创建类和继承它们。
使用类可以很好的帮助你拆分模块和创建更优秀的程序结构。

下面是最普通的基于构造函数的创建类:

1
2
3
var Animal = function() {
this.name = "animal";
}
阅读全文

当我第一次开始学习JavaScript对象模型,我的感觉就是好深奥啊,好难懂啊。我完全不解其prototype的性质,因为javascript是我第一次遇到的一个基于原型的语言。我不知道JavaScript有一个独特的prototype的作用,构造函数的概念。我相信,许多人都有过类似的经验。

在开发中,javascript使用是非常频繁的,只是简单的学习远远达不到理解的目的,必须渐渐深入它,也行你也会像我一样突然发现自己喜欢上了这样的方式。JavaScript是一门优雅和灵活性的原型语言。基于原型的语言有着更简单,更灵活的对象模型。

原型

在javascript中每个对象都有一个prototype,实例化的javascript对象都有一个proto,如下面代码:

1
2
3
4
5
6
var Person = function(){};
var person1 = new Person();
var person2 = new Person();
console.log(Person.prototype);//object
console.log(person1.__proto__);//object 注:有的浏览器不支持直接读取内部原型。
console.log(person2.__proto__);//object
阅读全文

QUnit是用来测试javascript真确性的,是一个简单强大的单元测试框架。如果你已经熟悉javascript,那么上手QUnit的难度几乎为0。

QUnit编写测试非常的简简明了。

测试函数:

1
2
3
test('测试名称', function() {
// 代码
});

阅读全文

我经常听到很多地方和教程中说,每当重写equals()方法,我需要重写hashCode()方法。但是,原因是什么?

equals()是定义在Object的一个方。在Java中,有两种类型的比较。一种方法是使用 “==” 操作符,
另一种就是“equals()” 。这两者之间的差异相信大家都知道, “equals()”是指等价关系。
在广义上说两个对象是相等的,他们满足的是“equals()”条件。

hashCode()是定义在Object的一个native方法,默认实现基本上是对象提供来自内存地址映射到一个整数的值。

阅读全文

grunt 简易教程

越来越多的前端开源项目采用grunt来构建或者管理其项目。Grunt是一个自动化的项目构建工具。如果你需要重复的执行像压缩,编译,单元测试,代码检查以及打包发布的任务。那么你可以使用Grunt来处理这些任务,你所需要做的只是配置好Grunt,这样能很大程度的简化你的工作。而且grunt是基于nodejs、采用javascript的语法,学习使用非常的方便。

阅读全文

linux命令随便练练。

环境说明

基于ubuntu-13.04-server-amd64,我使用的是virtualbox虚拟机来练习。

命令说明

通常在明白一个命令是做什么的时候就基本上掌握了该命令的使用了,什么参数的细节使用-h或者--h来查看。

阅读全文

linux是一个强大的系统,但是因为其图形接口不是那么的强大,使用起来有那么些难上手。但是看见其完善的文字接口,
又倍感强大。

环境说明

基于ubuntu-13.04-server-amd64,我使用的是virtualbox虚拟机来练习。

命令说明

通常在明白一个命令是做什么的时候就基本上掌握了该命令的使用了,什么参数的细节使用-h或者--h来查看。

阅读全文

Javy Liu

author.bio


author.job


beijing