对象初始化方式(也叫json对象创建方式)
<script type="text/javascript">
var User = {
name:"paul",
age:25,
toString:function()
{
alert(this.name+' is '+ this.age);
}
}
function display_user()
{
/* 不能用这种方式去创建对象,因为json对象方式没有构造函数*/
var paul = new User();
/* 直接用如下方式引用就可以了*/
User .toString();
}
</script>
构造函数方式
function User(name,age)
{
this.name =name;
this.age = age;
this.toString=function()
{
alert(this.name+' is '+this.age);
}
}
function display_user()
{
/* 因为对象有了构造函数,所以可以用如下方式 */
var paul = new User('paul',25);
paul.toString();
}
对于对象属性和方法的定义可以有如下几种方式:
属性分为私有属性,实例属性,和类属性;方法也是一样的,分为方法分为私有方法,实例方法,和类方法。
function User(name,age)
{
this.name =name;
this.age = age;
var adult_age = 18; /* 这是私有的属性*/
this.toString=function()
{
alert(this.name+' is '+this.age);
}
}
function display_user()
{
var paul = new User('paul',25);
paul.toString();
/* 因为adult_age是私有的属性,所以不能以这种方式访问,所以会出现undefined */
alert(paul.adult_age);
}
实例方法
function User(name,age)
{
this.name =name;
this.age = age;
var adult_age = 18;
this.toString=function()
{
alert(this.name+' is '+this.age);
}
}
/* 可以用原型的方式来添加实例的属性和方法 */
User.prototype.lastName = 'hu';
function display_user()
{
var paul = new User('paul',25);
paul.toString();
/* 以下是实例属性 */
alert(paul.name+' '+paul.lastName);
}
类的方法和属性
function User(name,age)
{
this.name =name;
this.age = age;
var adult_age = 18;
this.toString=function()
{
alert(this.name+' is '+this.age);
}
}
User.ID = 20000000;
function display_user()
{
var paul = new User('paul',25);
paul.toString();
/* 通过类名来进行引用 */
alert(User.ID);
}