javascript对象创建----六大步靠齐java
以下是我们可以创建出js对象的六大方法,其中第五六种是我们在开发中应该常用到的,前面四种是我们应该避免的。1、最传统的:
var person = new Object(); person.name = "hmj"; person.age = 25; person.showMsg = function(){ alert("name:"+this.name+";age:"+this.age) }
用法:
person.showMsg();
2、工厂模式创建:
工厂就是生产对象的地方,在这里是一个方法。这个方法能批量创建对象。
function createPerson(name,age){ var person = new Option(); person.name = name; person.age = age; person.showMsg = function(){ alert("name:"+person.name+";age:"+person.age); } return person;}
用法:
var person = createPerson("hmj",25);
person.showMsg();
说明:在这里我们批量地创建对象的并初始化对象方法的时候,每次都会创建新的函数,这会造成对内存的浪费。
我们可以把这个函数提取出来,只需要把对象的属性指向这个方法的引用即可。
3、构造方法模式:
因为js的开发越来越正规,创建对象时却没有引起足够重视。传统的面向对象创建对象都是非常正规的比方说:类首字母大写,
使用构造行数,使用new关键字创建对象。
function Person(name,age){ this.name = name; this.age = age; thhi.showMsg = function(){ alert(this.name + this.age); }}
同上,创建每个对象都会创建一个函数,为了避免出现这种情况,我们可以写成如下:
function Person(name.age){ this.name = name; this.age = age; this.showMsg = showMsg;}function showMsg(){ alert(this.name+this.age);}
用法:
var person = new Person("hmj",25);person.showMsg();
对构造函数的解释:构造函数,顾名思义就是生产函数的一个函数。当代码运行到行数内部的时候会首先创造一个对象,且这个对象只有this能够访问。
当我们的构造函数通过this对这个对象进行一系列操作后,在行数执行的最后,隐式返回这个对象。这就是为什么构造函数不需要返回值的原因(java也是一样吧)。
4、利用原型的方法构造对象,利用对象的prototype属性。
function person(){};person.prototype.name = "name";person.prototype.age = 25;person.prototype.showMsg = function(){ alert(this.name+this.age);}
用法:
<div class="quote_title">引用
页:
[1]