代码改变世界

在Javascript定义对象

2009-03-26 14:56  Virus-BeautyCode  阅读(7130)  评论(0编辑  收藏  举报
本文摘自:http://www.chenjiliang.com/article/View.aspx?ArticleID=2430

一、在Javascript中我们可以直接这样定义对象:
复制  保存
var xiaoxing = 
{       
   grade:1,
   name : "xiaoxing",
   age:27,
   sex:"男",
      
   speak:function(words)
   {
      alert(this.name+"说:"+words+"!");
   },

   improve:function()
   {
       this.grade++;
   }
}

这样,我就变成了一个对象了,你可以让我跟你说一句话
复制  保存
xiaoxing.speak("欢迎来到cnblogs的supersun的天空");
while(i have friends)
{
   xiaoxing.improve();
}



还不够面向对象,最好的做法是用一个函数来定义对象,在用他的prototype原型对象的方式来定义其属性,事件等,方便继承扩展。 
阅读 编辑 运行 复制  保存
<script language="javascript" type="text/javascript">
//创建原型对象,定义属性、方法、及对象事件等。 
Student.prototype=
{ 
    _name:null, 
    _age:null, 
    _sex:null, 
    ShowName:function()
    { 
        alert("Name:"+ this._name +"\n" + "Age:" + this._age + "\n" + "Sex:"+ this._sex); 
    } 
} 
//专门用一个函数来初始化对象。 
function Student(name,age,sex)
{ 
    this._name=name; 
    this._age=age; 
    this._sex=sex; 
} 

var student=new Student("Young",25,"男"); //实例化 
student.ShowName(); //调用对象方法
</script>



阅读 编辑 运行 复制  保存
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""> 
</HEAD> 

<BODY> 
<script language="javascript" type="text/javascript">
function Student(name,age,sex) 
{ 
    this._name=name; 
    this._age=age; 
    this._sex=sex; 
    this.ShowName=function() 
    { 
        alert("Name:"+ this._name +"\n" + "Age:" + this._age + "\n" + "Sex:"+ this._sex); 
    }; 
} 

var student=new Student("Young",25,"男"); //实例化 
student.ShowName(); //调用对象方法
</script> 
</BODY> 
</HTML>



阅读 编辑 运行 复制  保存
<script type="text/javascript">
var person = new Function();//或var person = function(){}都可以 
person.prototype={ 
    grade:0, 
    age:0, 
    sex:null, 
    name:null, 
    speak:function(words) 
    { 
        alert(this.name+"说:"+words+"!"); 
    }, 
    init:function(_grade,_age,_sex,_name) 
    { 
        this.grade = _grade;this.age=_age;this.sex=_sex;this.name=_name; 
    } 
} 
var xiaoxing = new person(); 
xiaoxing.init("10","27","男","xiaoxing"); 
xiaoxing.speak("hello everybody");
</script>

这里采用init来初始化定义了一个对象,当然我们还可以在function(){}这样写
复制  保存
var person = function(_grade,_age,_sex,_name){this.grade = _grade;this.age=_age;this.sex=_sex;this.name=_name;}

这样我们就可以写成如下代码 
希望更多的朋友发表自己的意见和心得 
复制  保存
var xiaoxing = new person("10","27","男","xiaoxing"); 
xiaoxing.speak("hello everybody");