javascript 學習筆記(八)javascript對象

來源:互聯網
上載者:User

1、javascript中的內建對象
javascript中除了本身的內建對象,如以下我們所熟悉的對象:
•Array
•Date
•Math
•String
•RegExp
•……
各個對象都有自己的屬性及方法,比如我們經常使用屬性及方法
屬性:stringObject.length; arrayObject.length;……
方法:stringObject.indexOf(); stringObject.splite(); stringObject.substr(); arrayObject.concat(); arrayObject.push(); arrayObject.join();……
2、如何自訂對象,及添加屬性和方法
a. 通過關鍵字new建立
複製代碼 代碼如下:
var newObject = new Object(); //建立一個新類
newObject.name = "new object"; //添加一個name的屬性
newObject.say = function() { //添加say()方法
alert(this.name); //output new object
}

對於以上的建立方法,我們可以利用JSON(JavaScript Object Notation)的方法簡寫為如下代碼:
複製代碼 代碼如下:
var newObject = {
name: "new object";
say: function () {
alert(this.name);
}
};

我們利用JSON的資料格式建立一個更為複雜的對象
複製代碼 代碼如下:
var company = {
name: "tuanzz",
product: "groupon",
address: {province: "Hubei", city: "wuhan"},
person:[
{name: "zhangchen",age: "23"},
{name: "luomi", age: "23"},
],
readme: function() {
alert("My name is "+this.person[0].name+" and "+this.person[0].age+" years old");
}
};
company.readme(); //output My name is zhangchen and 23 years old;

我們可以看到,用JSON的資料格式建立的對象,代碼不僅看起來十分優雅。
JSON的形式就是用大括“{}”號包括起來的項目列表,每一個項目間並用逗號“,”分隔,而項目就是用冒號“:”分隔的屬性名稱和屬性值。這是典型的字典表示形式,也再次表明了 JavaScript裡的對象就是字典結構。不管多麼複雜的對象,都可以被一句JSON代碼來建立並賦值。
b、通過建構函式來建立對象
複製代碼 代碼如下:
function objectFun(name) {
this.name = name;
this.say = function() {
alert(this.name);
}
}
var newObject = new objectFun("zhangchen");
newObject.say(); //output zhangchen

首先建立一個objectFun()函數,其中定義了屬性和方法,這裡我們可以把objectFun看作一個類(在javascript中函數就是對象),然後通過new執行個體化出一個對象,newObject對象中同樣也有了父類中屬性和方法。
我們可以用以下代碼來檢測函數確實是對象:
複製代碼 代碼如下:
//普通函數
function say(s) {
alert(s);
}
say("hi");
//給函數對象賦屬性,函數就是對象
say.test = "it can work?";
alert(say.test); //output it can work?

如何理解以上建立對象的方法?我們看下面的代碼:
複製代碼 代碼如下:
function objectFun(name) {
this.name = name;
this.say = function() {
alert(this.name);
}
}
var newObject = new Object(); //建立一個Null 物件
objectFun.call(newObject, "zhangchen"); //將newObject作為this參數調用objectFun函數
newObject.say("zhangchen");//output zhangchen

首先建立一個newObject對象,newObject作為this參數調用objectFun函數。講了這麼多,我們完全可以把objectFun作為建構函式來使用。
-------------------------------------------------------------------------------------------------------------------------------------------------
餘下內容大家可參考李戰寫的悟透JavaScript

相關文章

聯繫我們

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