javascript js 入門三

來源:互聯網
上載者:User

繼續上篇 文法遍:本篇介紹JS自訂對象。
在js中,可以用函數來類比對象的描述,可以有以幾種定義類描述對象的形式:
方式一: 只定義空的函數,用此函數描述new出一個具體對象後,在對象引用上加屬性與方法 如下:
[javascript] 
//用js來描述人 
function Person(){//相當於構造器。 
  //alert("person run"); 

 
//通過描述進行對象的建立。 new. 
var p  = new Person(); 
//動態給p對象添加屬性。直接使用p.屬性名稱即可。 
p.name = "zhangsan";    //賦值後,然後要讀取屬性值,可直接通過p.屬性名稱即可。 
p.age = 29; 
//如果定義的p對象的屬性賦值為一個函數,即是給p對象添加一個方法。 
p.show = function(){ 
    alert("show :"+this.name+":"+this.age); 

p.show(); //調用自訂對象的方法 
方式二:通過構造器的方式來描述類,將對象的屬性與方法定義在函數體中。 如下:
[javascript] 
function Person(name,age){ 
    //在給Person對象添加了兩個屬性。 
    this.name = name; 
    this.age = age; 
    //給Person對象添加兩個方法,也間接說明js中函數可以嵌套函數的。 
    this.setName = function(name){ 
        this.name = name; 
    } 
    this.getName = function(){ 
        return this.name; 
    } 

使用上面的Person對象就簡單了,與java類似 如下:
[javascript] 
var p = new Person("張三",20); 
for(x in p){ 
    println(x+":元素值是:"+p[x]); //這裡的for in中,x為p對象中,所以成員。如x為name/age/getName... 

p.setName("小強"); 
println("看看姓名哈::"+p["name"]) //對象["屬性名稱"] 也可查看屬性的值 
println("通過方法看姓名哈::"+p.getName()); 
println("直接使用屬性看姓名哈:"+p.name); 

方式三:通過將對象的屬性名稱與方法以 索引值對 形式封閉在一個大括弧{}中,這種方式構造出來的對象,不能new出新的對象,相當於var 物件變數名, 此物件變數名不可以再new。 如下:
[javascript] 
//直接使用{}定義屬性和值的索引值對方式。索引值鍵通過:串連,鍵與鍵之間用逗號隔開。  
var pp  = { 
    //定義一些成員。 
    "name":"小明","age":28, 
    "getName":function(){ 
        return this.name; 
    }    

println("能看看值好嗎::"+pp["age"]+":"+pp.name +":"+pp.getName()); 
這種方式,更廣泛的應用在資料,以KVStore for Redis當作一個儲存容器物件來用,又如下:
[javascript] 
var citys = { 
    "江蘇":["南京","蘇州","無錫","常州"], 
    "上海":["徐匯區","浦東區","寶山區"] 

println("城市還可以這麼玩:"+citys.江蘇[1]); //開心的話,可以拿到江蘇後,給江蘇來個遍曆 
for(var i=0;i<citys.江蘇.length;i++){ 
    println("江蘇的::"+citys.江蘇[i]); 

總結:一般來說呢,
  1. 若是為了儲存資料的,資料以索引值對形式的話,用方式三就洽當不過了。
   2.若要儲存資料,但資料不需要索引值對的話,用普通數組就O了。
  3. 若要玩轉類型java中的對象,可以使用方式二,比較直觀。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.