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

夺命雷公狗---javascript NO:25 属性的遍历、删除与成员方法

2015-12-09 10:12 766 查看

1、属性的遍历

在实际项目开发中,我们得到一个对象,如果想知道其包含了哪些属性或方法,那么可以使用for…in…循环语句进行遍历输出。

示例代码:

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
<script>
//定义一个Persion类
function Person(){}
//创建一个自定义对象
var p1 = new Person();
p1.name = ‘zhangsan';
p1.age = 22;
p1.email = ‘123@163.com';
//遍历p1对象输出其属性
for(var i in p1){
document.write(p1[i]+'<br/>’);
}
</script>
</body>
</html>


2、for…in…其也可以遍历系统对象

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
<script>
for(var i in document){
document.write(i+'<br/>’);
}
</script>
</body>
</html>


3、删除自定义属性

在我们传递对象的过程中,我们可能并不需要某些自定义属性,那么我们可以通过delete关键词对其删除:

delete 自定义对象.属性;

示例代码:

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
<script>
function Person(){}
var p1 = new Person();
p1.name = ‘lisi';
p1.age = 23;
p1.email = ‘123@qq.com';
delete p1.age;
for(var i in p1){
document.write(p1[i]+'<br/>’);
}
</script>
</body>
</html>


成员方法

成员属性:对象的某个属性(静态的)如name、age、address

成员方法:对象的某个行为(动态的)如speak、run

例1:为对象定义成员方法

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
<script>
function Person(){}
var p1 = new Person();
p1.name = ‘lisi';
p1.age = 23;
//定义成员方法
p1.speak = function(){
alert(this.name+’—‘+this.age);
}
p1.speak();  // lisi–23
var p2 = new Person();
p2.name = ‘lisi';
p2.speak = function(){
alert(this.name);
}
p2.speak();
</script>
</body>
</html>


例2:简化以上代码

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
<script>
function say(){
alert(this.name);
}
function Person(){};
var p1 = new Person();
p1.name = ‘lisi';
p1.age = 23;
//定义成员方法
p1.speak = say;
p1.speak();
var p2 = new Person();
p2.name = ‘zhangsan';
p2.age = 25;
p2.speak = say;
p2.speak();
</script>
</body>
</html>


以上两种方法,都存在不足,我们每次定义属性或方法,都需要重复定义多次:

1)容易写错

2)代码冗余

例3:封装以上代码,代码如下

<!DOCTYPE html>
<html>
<head>
<meta charset=’utf-8′>
<title></title>
</head>
<body>
<script>
//定义一个类
function Person(name,age){
this.name = name;
this.age = age;
//定义成员方法
this.speak = function(){
alert(this.name+this.age);
}
}
var p1 = new Person(‘zhangsan’,22);
p1.speak();
var p2 = new Person(‘lisi’,25);
p2.speak();
</script>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: