对象
对象概念:就是由属性跟方法组成
属性:事物的特征(n)方法:事物的行为(v)
比如一个手机,属性就是它的颜色,尺寸,大小 方法就是可以打电话,发短信。
对象的作用:使代码结构更加清晰
1 字面量的方式创建一个对象(普通创建对象)
格式:
var obj ={
(属性名:值)
uname:“翠花”,
age:18,
sex:“女”,
方法(动作)=> sayHi : function(){
< sayHi(){} 可以简写 >
console.log(“大家好!”)
}
}
console.log(obj.uname)
obj.sayHi();
相当于声明完了对象,我们就要使用调用函数
属性值输出就是 . <函数名.属性>
方法里面东西输出就是 <对象名.方法名()>
切记,控制台不要打印!! <跟函数调用差不多>
注意点: 1> 属性值后面跟冒号:值
2>一段文字后面紧接一个逗号,
3>方法后面跟的匿名函数
2 构造对象new Object
格式:
var obj=new Object();
obj.uname="翠花";
obj.sex="女";
obj.age=18;
obj.sayHi=function(){
//简写
obj.sayHi(){
console.log("12345")
}
}
console.log(obj.uname)
obj.sayHi();
注意:1> 属性值后面跟冒号=值
2> 一段文字后面紧接一个分号,
3this用法
this 不是固定不变的,它会随着执行环境的改变而改变。
- 在方法中,this 表示该方法所属的对象。
- 如果单独使用,this 表示全局对象。
- 在函数中,this 表示全局对象。
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
this就是对应的person
4遍历对象
使用for...in来遍历对象中的属性和方法 当然我才发现数组也可以使用
例子:varobj={uname='翠花',age=18,sex='女'};
开始来遍历=> for(var k in obj){ => k就是个变量名(自定义)
console.log(k) =>可以获取遍历过程中的属性名或者方法名
console.log(obj[k])=>因为我们要求遍历得出值[]是带解析作用得到变量值
如果是obj.k=>undefined
}
5检测对象成员是否存在
第一种 in
例子
var obj={uname='翠花',age=18};
console.log("uname" in obj); //true =>属性值在不在对象里 从小到大
console.log("toString" in obj); //true
返回值 布尔值 true/flase
注意:1>属性值一定要带引号
2>专门语法 in
3>返回true/flase
第二种 hasOwnProperty
var obj={uname='翠花',age=18};
console.log (obj.hasOwnproperty("uname")); //true
console.log (obj.hasOwnproperty("toString")); //flase
返回值 布尔值 true/flase
注意:1>属性值一定要带引号
2>使用方法 对象.hasOwnProperty("属性名")
3>返回true/flase
4>继承属性toString不算
in 跟 hasOwnProperty区别:
in :是我的孩子(不管是不是亲生的)
hasOwnProperty : 必须是亲生的才能继承家产