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();
}

posted on 2017-03-02 23:18  奔游浪子  阅读(714)  评论(0)    收藏  举报

导航