日期:2014-05-16 浏览次数:20435 次
? JS面向对象(新手篇) 本文以一个过程来描述JS面向对象的用法,希望能够帮助新手尽可能对JS面向对象有个了解。因本人技术水平有限,错漏之处,恳请指出。 ? 以下是内容小点: ?1. 使用funciton作为构造函数构建对象 2. 使用json作为构造函数的参数 3. 通过eval内置函数动态添加对象属性 4. 为对象新增方法 5. 使用JSON来创建对象 6. 使用Function作为对象创建,并把JSON属性赋予给Function ? 1. 使用function作为构造函数构建对象 对于类的创建来说,最常见的方法是提供一个构造函数来获取类的实例。 ? ? 示例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作为参数传值更为灵活。 ? ? 示例2.
? 3. 通过eval内置函数动态添加对象属性 this.name = conf.name; this.age = conf.age; this.alias = conf.alias; 要是参数有好几个,那么这样的语句要写好几行。<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>
<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>