日期:2014-05-16  浏览次数:20381 次

JS面向对象(新手篇)

?

JS面向对象(新手篇)

本文以一个过程来描述JS面向对象的用法,希望能够帮助新手尽可能对JS面向对象有个了解。因本人技术水平有限,错漏之处,恳请指出。

?

以下是内容小点:

?1. 使用funciton作为构造函数构建对象

2. 使用json作为构造函数的参数

3. 通过eval内置函数动态添加对象属性

4. 为对象新增方法

5. 使用JSON来创建对象

6. 使用Function作为对象创建,并把JSON属性赋予给Function

?

1. 使用function作为构造函数构建对象

对于类的创建来说,最常见的方法是提供一个构造函数来获取类的实例。

?

<script type="text/javascript">
	var Person = function(name, age, alias) {
	this.name = name;
	this.age = age;
	this.alias = alias;
	}
	
	var person = new Person('leisure', 22);
	alert('name: ' + person.name + ' age: ' + person.age);
</script>

?

示例1.

?

2. 使用json作为构造函数的参数

构造函数传参是一种非常平常的方式,但当有许多参数的时候,在创建时调用函数传参变得非常艰难,而且也较难阅读。除非该方法注有非常明确的注释,否则调用者必须仔细地数一下参数以及验证参数位置是否正确。而且javascript并没有重载这一特性(若两个函数同名,即只有最后声明的函数生效),所以也没法使用Java中的构造器重叠来解决。

?

JavaScript是可以把对象作为参数传递的。这样一来,JSON便是一个不错的选择。JSON是一个普通的数组,数组中的每个元素是由一个HashMap,HashMap分别存储键和值。所以说JSON是一个首选的传参对象。

?

JSON是一个以“{”开始,以“}”结束的对象,其内容是key: value,每个元素用“,”隔开,注意最后一个元素是不用添加“,”的。以下是一个简单的JSON对象:

var params = {name: 'leisure', age: 22};?

示例片段1.?

获取JSON属性的值是非常简单的,只需要通过 JSON对象 + "." + 键名即可获取键对应的值。

?

以下是示例2. ,相比于示例1. ,使用json作为参数传值更为灵活。

?

<script type="text/javascript">
	var Person = function(conf) {
	this.name = conf.name;
	this.age = conf.age;
	this.alias = conf.alias;
	}
	
	var person = new Person({age: 22, name: 'leisure'});
	alert('name: ' + person.name + ' age: ' + person.age);
</script>

?

示例2.

?

3. 通过eval内置函数动态添加对象属性

this.name = conf.name;

this.age = conf.age;

this.alias = conf.alias;

要是参数有好几个,那么这样的语句要写好几行。