with语句和for...in语句是js中用于对象的语句。以下分别对这两个语句进行详细介绍和举例。
1. with语句
1)简要说明
with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。
2)语法格式
with(object instance) {
//代码块
}
有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现:
with(objInstance) {
var str = 属性1;
......
}
去除了多次写对象名的麻烦。
3)举例
eg1.在with中取对象属性举例:
<script language="javascript">
<!--
function Employee() {
this.name = "阿蜜果";
this.age = "24";
this.gender = "女";
}
var amigo = new Employee();
with(amigo) {
var str = "姓名: " + name + "<br>";
str += "年龄:" + age + "<br>";
str += "性别:" + gender;
document.write(str);
}
// -->
</script>
代码执行效果如下:
<!--
function Employee() {
this.name = "阿蜜果";
this.age = "24";
this.gender = "女";
}
var amigo = new Employee();
with(amigo) {
var str = "姓名: " + name + "<br>";
str += "年龄:" + age + "<br>";
str += "性别:" + gender;
document.write(str);
}
// -->
</script>
姓名: 阿蜜果
年龄:24
性别:女
eg2.在with代码块中调用对象的方法:
<script language="javascript">
<!--
var now = new Date();
with(now) {
var str = "当前日期:";
str += getYear() + "年";
str += (getMonth() + 1) + "月";
str += getDate() + "日";
document.write(str);
}
// -->
</script>
<!--
var now = new Date();
with(now) {
var str = "当前日期:";
str += getYear() + "年";
str += (getMonth() + 1) + "月";
str += getDate() + "日";
document.write(str);
}
// -->
</script>
程序执行结果如下:
当前日期:2007年4月7日
2. for...in语句
1)简要说明
该语句用于对数组或者对象的属性进行循环操作。它可对某个对象的所有属性进行循环操作。
2)语法格式
for (变量
in
对象) {
在此执行代码
}
3)举例
eg1.使用for...in循环遍历数组,代码如下:
<script type="text/javascript">
var index;
var myFriends = new Array();
myFriends[0] = "chocalate Xiao";
myFriends[1] = "sterning";
myFriends[2] = "wolf";
document.write("friends list: <br/>")
for (index in myFriends) {
document.write(myFriends[index] + "<br/>")
}
</script>
var index;
var myFriends = new Array();
myFriends[0] = "chocalate Xiao";
myFriends[1] = "sterning";
myFriends[2] = "wolf";
document.write("friends list: <br/>")
for (index in myFriends) {
document.write(myFriends[index] + "<br/>")
}
</script>
执行结果如下:
friends list:
chocalate Xiao
sterning
wolf
eg2. 使用for...in语句调用对象的属性和属性值,代码如下:
<script language="javascript">
<!--
function Employee() {
this.name = "阿蜜果";
this.age = "24";
this.gender = "女";
}
var amigo = new Employee();
var prop;
for(prop in amigo) {
document.write("属性: " + prop + ";属性值: " + amigo[prop] + "<br/>");
}
// -->
</script>
<!--
function Employee() {
this.name = "阿蜜果";
this.age = "24";
this.gender = "女";
}
var amigo = new Employee();
var prop;
for(prop in amigo) {
document.write("属性: " + prop + ";属性值: " + amigo[prop] + "<br/>");
}
// -->
</script>
代码执行结果如下:
属性: name;属性值: 阿蜜果
属性: age;属性值: 24
属性: gender;属性值: 女