JS建立對象的幾種方式整理

來源:互聯網
上載者:User

標籤:color   原型模式   .class   基於   obj   student   teacher   ext   rip   

javascript是一種“基於prototype的物件導向語言“,與java有非常大的區別,無法通過類來建立對象。那麼,既然是面象對象的,如何來建立對象呢?

一:通過“字面量”方式建立對象

方法:將成員資訊寫到{}中,並賦值給一個變數,此時這個變數就是一個對象

列如:

var person={"name":"abc","age":22,work:function(){console.loh(1)}}

如果{ }中為空白,則將建立一個Null 物件:

var person={}

示範代碼:

<script>  var person={     name:"wqc",     age:22,    intro:function(){console.log(1)}}; person.intro();</script>
 我們還可以給對象豐富成員資訊。  對象.成員名稱 = 值;  對象[成員名稱] = 值;也可以擷取對象的成員資訊。  對象.成員名稱;  對象[成員名稱];豐富成員資訊:
<script>var person={     name:"wqc",     age:22,     intro:function(){         console.log(1);    }     }person.class=22;//豐富成員變數</script>

二、通過“建構函式”方式建立

方法:

var person=new 函數名();

比如:var person=new object();

 

<script>    function person(){        this.name="xiaoming";        this.age=22;        this.intro=function(){            console.log(2)        }    }    var per=new person();    per.intro();</script>

三、通過object方式建立。

 

var obj=new Object()

方法:先通過object構造器new一個對象,再往裡豐富成員資訊。\

 

 <script type="text/javascript">2 var person = new Object();3 person.name = "dongjc";4 person.age = 32;5 person.Introduce = function () {6         alert("My name is " + this.name + ".I‘m " + this.age);7     };8 person.Introduce();9 </script>

 第五種:原型建立對象模式 

 

function Person(){}Person.prototype.name = ‘Nike‘;Person.prototype.age = 20;Person.prototype.jbo = ‘teacher‘;Person.prototype.sayName = function(){ alert(this.name);};var person1 = new Person();person1.sayName();

使用原型建立對象的方式,可以讓所有對象執行個體共用它所包含的屬性和方法。

第六種:使用原廠模式建立對象

 

function createPerson(name,age,job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){  alert(this.name);  }; return o; }var person1 = createPerson(‘Nike‘,29,‘teacher‘);var person2 = createPerson(‘Arvin‘,20,‘student‘);

在使用原廠模式建立對象的時候,我們都可以注意到,在createPerson函數中,返回的是一個對象。那麼我們就無法判斷返回的對象究竟是一個什麼樣的類型。於是就出現了第二種建立對象的模式。

第七種:組合使用建構函式模式和原型模式

 

function Person(name,age,job){ this.name =name; this.age = age; this.job = job;}Person.prototype = { constructor:Person, sayName: function(){ alert(this.name); };}var person1 = new Person(‘Nike‘,20,‘teacher‘);

 

 

JS建立對象的幾種方式整理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.