JavaScript 使用函數來定義類。
語法:
function className(){
// 具體操做
}php
function Person() { this.name=" 張三 "; // 定義一個屬性 name this.sex=" 男 "; // 定義一個屬性 sex this.say=function(){ // 定義一個方法 say() document.write("嗨!你們好,個人名字是 " + this.name + " ,性別是 " + this.sex + "。"); } }
在JavaScript中,建立對象(即類的實例化)使用 new 關鍵字。函數
this 關鍵字是指當前的對象。this
在JavaScript中,可使用「 . 」和「 [ ] 」來訪問對象的屬性。只能使用「 . 」來訪問對象的方法。spa
function Person() { this.name=" 張三 "; // 定義一個屬性 name this.sex=" 男 "; // 定義一個屬性 sex this.age=22; // 定義一個屬性 age this.say=function(){ // 定義一個方法 say() return "嗨!你們好,個人名字是 " + this.name + " ,性別是 " + this.sex + ",今年 " + this.age +"歲!"; } } var zhangsan=new Person(); alert("姓名:"+zhangsan.name); // 使用「.」來訪問對象屬性 alert("性別:"+zhangsan.sex); alert("年齡:"+zhangsan["age"]); // 使用「[ ]」來訪問對象屬性 alert(zhangsan.say); // 使用「.」來訪問對象方法
動態添加屬性和方法code
// 定義類 function Person(name,sex) { this.name=name; // 定義一個屬性 name this.sex=sex; // 定義一個屬性 sex this.say=function(){ // 定義一個方法 say() return "嗨!你們好,個人名字是 " + this.name + " ,性別是 " + this.sex + " 。"; } } // 建立對象 var zhangsan=new Person("張三","男"); zhangsan.say(); // 動態添加屬性和方法 zhangsan.tel="029-81892332"; zhangsan.run=function(){ return " 我跑得很快! "; } // 彈出警告框 alert("姓名:"+zhangsan.name); alert("姓別:"+zhangsan.sex); alert(zhangsan.say()); alert("電話:"+zhangsan.tel); alert(zhangsan.run());
對象字面量是一個 名/值 對列表,每一個 名/值 對之間用逗號分隔,最後用一個大括號括起來。名/值對 表示對象的一個屬性或方法,名和值之間用冒號分隔。 對象
var myCar={ "price" : "$10,000" , // 屬性 "color" : "red" , // 屬性 "run" : function(){ return " 120 km/h "; } // 方法 } var myHome={ population : "10,000" , area : "10,000" , adress : { // 屬性 country : "China" , province : "shanxi" , city : "xian" }, say : function(){ // 方法 return "My hometown is very beautiful ! "; } }
使用對象字面量能夠建立單個對象,語義直觀。blog
對象字面量能夠嵌套。ip
JavaScript 使用 for in 語句來遍歷對象的屬性和方法。for in 語句循環遍歷 JavaScript 對象,每循環一次,都會取得對象的一個屬性或方法。
語法:
for(valueName in ObjectName){
// 代碼
}
其中,valueName 是變量名,保存着屬性或方法的名稱,每次循環,valueName 的值都會改變。 相似於php中的foreach($array as $key=>$val)ci
var zhangsan={} zhangsan.name = "張三"; zhangsan.sex = "男"; zhangsan.say = function(){ return "嗨!你們好,我來了。"; } zhangsan.contact = { tel : "029-81895644", qq : "1370753465", email : "itxueyuan@gmail.com" } var strTem=""; // 臨時變量 for(value in zhangsan){ strTem+=value+':'+zhangsan[value]+"\n"; } alert(strTem);
function charNum(str){ var charObj={} for(i=0,len=str.length;i<len;i++){ if(charObj[str[i]]){ charObj[str[i]]++; }else{ charObj[str[i]]=1; } } var strTem=""; // 臨時變量 for(value in charObj){ strTem+='"'+value+'"的個數:'+charObj[value]+'\n'; } return strTem; } charNum("http://www.itxueyuan.org"); charNum("134775444637722991919");