您的位置:首页 > Web前端 > JavaScript

javascript面向对象思想

2015-07-01 11:50 549 查看
JavaScript 使用函数来定义类。
语法:
function className(){
// 具体操作
}

function Person() {
this.name=" 张三 ";  // 定义一个属性 name
this.sex=" 男 ";  // 定义一个属性 sex
this.say=function(){  // 定义一个方法 say()
document.write("嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + "。");
}
}


在JavaScript中,创建对象(即类的实例化)使用 new 关键字。

this 关键字是指当前的对象。

在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。只能使用“ . ”来访问对象的方法。

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);   // 使用“.”来访问对象方法


动态添加属性和方法

// 定义类
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 ! ";
}
}


使用对象字面量可以创建单个对象,语义直观。

对象字面量可以嵌套。

JavaScript 使用 for in 语句来遍历对象的属性和方法。for in 语句循环遍历 JavaScript 对象,每循环一次,都会取得对象的一个属性或方法。

语法:
for(valueName in ObjectName){
// 代码
}
其中,valueName 是变量名,保存着属性或方法的名称,每次循环,valueName 的值都会改变。 类似于php中的foreach($array as $key=>$val)

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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: