JS.基础方法+for...in语句枚举对象和属性

 <title>7.JS基础方法</title>
<script>
/*
*创建一个对象
*/
var obj = new Object();
//向对象中添加属性
obj.name = "孙悟空";
obj.age = 18;

//对象的属性值可以是任意的数据类型,可以是对象,也可以是个函数
obj.sayName = function(){//将function匿名函数赋值给了obj.sayName属性

console.log(obj.name);//对象的属性值也可以是一个函数
}
function fun(){
console.log(obj.name);
}
//console.log(obj.sayName);
//函数的属性值也可以是一个函数,调用函数,
//调用函数obj.sayName
//调方法
obj.sayName();
//调函数
fun();
/*
*函数也可以成为一个对象的属性;
* 如果一个函数做一为一个对象的属性保存,那么我们称这个函数是这个对象的方法如上sayName是obj的方法
* 调用这个函数就说是调用对象的方法(method)
* 因为:sayName是obj的方法,调用sayName()时,我们也说调用obj的sayName方法
* 但是注意:它只是名称上的区别没有其他区别
*/


//下面使用字面量进行操作
var obj2 = {
name:"猪八戒",
age:18,
sayName:function(){
console.log(obj2.name);
}
};
obj2.sayName();//调用obj2的sayName方法。这样理解obj2本就是对象,但是sayName是一个函数啊~要想在对象中设置函数是可以的,但是调用有两种方式,1、就是这种方式2、就是直接调函数sayName();。名称不同实际打印显示的都是
//实际显示的都是“猪八戒”

</script>
for...in语句枚举对象和属性
<script>
var obj = {
name:"孙悟空",
age:18,
gender:"男",
address:"花果山"
};
//若已知obj,未知obj内部的属性,求解内部属性使用枚举法
//枚举对象中的属性 //需要使用for...in语句 难道是属性名in对象,for name in obj?
/*
*语法:(与for语句括号中间不同)
* for(var 变量in 对象){
*
* }
* for...in语句对象中有几个属性,循环体就会执行几次
* 每次执行时,会将对象中的一个属性的名字赋值给变量----此时变量为n
* */
for(var n in obj){
// console.log("hello");//obj中有四个属性,循环体执行4次
console.log("属性名 ="+n);//name、age、gender、address
console.log("属性值 ="+obj[n]);//中括号的使用代表obj中找n的值的属性,n的值是什么就是找的那个属性。当n的值是name就是找n的那么属性,其他三个相同意义
}
//中括号的特点就是可以传变量,但是n不能加上“”双引号,否则就是和.点一样求属性名
</script>

posted @ 2022-05-09 20:17  LiLime  阅读(75)  评论(0)    收藏  举报