欢迎来到福编程网,本站提供各种互联网专业知识!

不错的JavaScript面向对象的简单入门介绍第1/2页

发布时间:2008-07-03 作者: 来源:转载
JavaScript是一门OOP,而有些人说,JavaScript是基于对象的。
1)如何创建对象:
1.使用constructor,例如:
varobj=newObject()//var可以省略
varobj=newDate()

2.使用对象字面值(objectliterals),例如:

程序代码

varobj="123"//创建一个String对象
varobj=/^abc$///创建一个RegExp对象


更加复杂的情况是,我们可以直接生成一个自定义的只有属性的对象:

程序代码

varobj={
name:"killercat",
home:"www.i170.com/user/killercat"
}
document.write(obj.name+"

")
document.write(obj.home)
结果:
killercat
www.i170.com/user/killercat

2)JavaScript中的属性:
str="www.i170.com/user/killercat"//str一个字符串对象的引用
document.write(str.length)
通过对象的引用加上"."再加上属性名,可以访问到这个属性,也可以修改这个属性,甚至是添加一个属性,比如:
varobj=newObject()
obj.name="killercat"//为对象直接添加一个属性
document.write(obj.name)//访问对象的属性
obj.name="kcat"//修改对象的属性
document.write(obj.name)

枚举属性值:
使用for...in语句可以枚举属性(具体来说就是枚举属性名),前面已经提到过,比如
for(eleinwindow){
document.write(ele+"

")
}
如何得到属性值?
obj=newObject()
obj.p1="a"
obj.p2="b"
obj.p3="c"
for(eleinobj)
document.write(obj.ele)//这是新手可能犯的错误,obj.ele的值是undefined
应该这样访问属性值:
document.write(eval("obj."+ele))

未定义的属性:
obj=newObject()
document.write(obj.name)
结果是:undefined

删除属性:
obj=newObject()
obj.name="killercat"
deleteobj.name
document.write(obj.name)
结果是:undefined

理解属性:
我们知道在Java,c++中,属性要么属于某个类(类属性或说是静态属性),要么属于对象,也就是说,同一个类的对象,一定有一样的属性,但是JavaScript不一样,同样是Object的对象,却可以有不同的属性。除了这类的属性,JavaScript中还有静态的属性(变量)。

3)Constructor
源于某些未知原因,有些人似乎不愿意在JavaScript提到classes这个词,取代的是"对象的类型(objecttypes)",甚至有些人直接叫函数,于是可以看见这样的说法:“我们通过预先定义好的函数,产生了一个对象”。本文使用类,这个名词。
JavaScript定义方法的方式和定义类的方式一模一样:
functionUser(name,sex){//定义了类User
this.name=name;
this.sex=sex;
}

user=newUser("kc","man")
document.write(user.name+"

"+user.sex)

contructor的作用就是在初始化属性(变量)
当前1/2页12下一页阅读全文

相关推荐