1.JS中的对象表示的是一个具体的事物.
a)静态的特征=>对象的属性
b)动态的行为=>对象的方法=>保存的值==>函数
2.对象的创建方式
a)构造函数的创建方式 var obj = new Object( );
var obj = new Create( );
b)对象字面量创建
书写单个对象时,或者多个对象但是相互之间没有任何的相似性,使用对象字面量
书写时---键值对集合 键=>属性名 值=>属性值
var obj = {
// 注意,对象字面量内部使用属性名和属性值对应的形式
name: "张三",
age: 18,
sex: "男",
sayHi: function () {
console.log("我是sayHi方法");
},
sayHehe: function () {
console.log("我是sayHehe");
}
};
1)属性: obj.name="Jim";
2)方法: obj.sayHi=function(){console.log("方法")}
c)对象属性访问的方式
1)通过.的方式进行属性操作 obj.name="Jim";
2)通过[]的方式进行属性操作 obj["name"]="Jim";
a)但在使用对象属性时,不能确定要使用的属性名是什么(需要用户输入,函数传参)
场景1:根据用户的输入,获取对象的某个属性值
var obj = {
name:"jack",
age:18
};
var str = prompt();//用户的输入是字符串类型
console.log(obj[str]);
场景2:封装一个函数,根据用户的实参时,访问对象的某个属性
function fun(attrName) {//attrName 属性名
var obj = {
name:"jack",
age:18
};
console.log(obj[attrName]);
}
fun("name");
fun("age");
b)数组 obj[100]="属性名是数,设置为数值类型,隐转字符串"
d)对象的遍历 for in
数组中的数据是按照索引排列的,是一种有序的数据存储方式---for循环
对象中的数据是按照属性名保存的,是一种无序的数据存储方式---for in循环
for (var k in obj ){...........}
3.this的使用
a)只有在对象的方法内使用时才有意义
b)this在方法内使用,指向函数的调用者
c)使用场景--除了方法以外的其他环境中访问this,会指向window对象(浏览器环境下的顶级对象)
4.new的作用
a)创建了一个对象
b)将函数内的this指向,修改为第一步创建的对象
c)返回了一个对象