JS对象的声明
JS是基于对象的,而不是面向对象的,接下来就介绍一下几种声明JS对象的方式
1、这种呢,先定义一个空的方法,然后实例化,然后在定义其属性
function Test()
{
}
var t=new Test();
t.Name="qwe";
t.Age=12;
t.Say=function (){
alert("我"+t.Age+"岁了");
}
alert(t.Name);
t.Say();
但是呢,每次先定一个空的方法,然后在实例化这个方法,看起来不是很顺眼,那个空方法,好像没有什么真正的用处,JS内置了一个Object对象,所以就可以改成
var t=new Object();
t.Name="qwe";
t.Age=12;
t.Say=function (){
alert("我"+t.Age+"岁了");
}
alert(t.Name);
t.Say();
效果同上,这就是第一种声明对象的方法,看起来有点多此一举的感觉,实际用处并不大。
2、
function Test() {
var t = new Object();
t.Name = "qwe";
t.Age = 23;
t.Say = function () {
alert("我今年" + t.Age + "岁了");
}
return t;
}
var t = Test();
alert(t.Name);
t.Say();
3、哪个对象的方法,this就是哪个对象,有this就得有new
function Test() {
this.Name = "qwe";
this.Age = 23;
this.Say = function () {
alert("我今年" + this.Age + "岁了");
}
}
var t =new Test();
alert(t.Name);
t.Say();
现在对象的声明已经知道了,但是如果遍历一个对象的属性和属性值呢
for (var e in t) 此时e就表示属性名
{
document.write("属性名:"+e+",值:"+t[e]); 获得属性值的时候千万不要写成 p.e 这样的话就会成了对象p的e属性,就是undefined。
}
另外还要补充一下,with的用法
with(对象)
{
里面的方法要是属于括号里的对象的话,可以直接调用方法名,如果不是,则需 对象.方法()
}
function Test() {
this.Name = "qwe";
this.Age = 23;
this.Say = function () {
alert("我今年" + this.Age + "岁了");
}
}
var t =new Test();
alert(t.Name);
t.Say();
with (t)
{
Say();
}
浙公网安备 33010602011771号