一,什么是对象?为什么需要对象
为什么需要对象
二,创建对象的三种方式
1.利用字面量创建对象
var obj = {} //创建了一个空的对象
var obj = {
uname: '张三', //属性
age: 18, //属性 多个属性或方法之间用逗号隔开
sayHi: function() { //方法 方法冒号后跟的是一个匿名函数
console.log('hi~');
}
}
//使用对象:对象名.属性或对象名['属性名'] 对象名.方法()
console.log(obj.age); //18
console.log(obj['uname']); //张三
obj.sayHi(); //hi~
变量,属性,函数,方法总结
2.利用new Object创建对象
var obj = new Object(); //创建了一个空对象
//追加对象和方法 利用赋值的方法,每个属性和方法之间分号分隔
obj.uname = '张三';
obj.age = 18;
obj.sex = '男';
obj.sayHi = function() {
console.log('hi~');
}
3.利用构造函数创建对象
因为一次创建一个对象,里面有很多属性和方法相同,我们只能复制,因此我们可以利用函数的方法重复这些相同的代码,而这个函数就叫做构造函数
构造函数里面封装的不是普通代码,而是对象
语法格式:
//构造函数的语法格式
//属性和方法前面必须要加this
//构造函数不需要return就可以返回结果
function 构造函数名(形参,形参,...){ //构造函数名首字母要大写
this.属性 = 值;
this.方法 = function (){
语句
}
}
//调用构造函数 必须要用new
new 构造函数名(实参,实参,...);
注意:构造函数名首字母一般要大写
实例:
function Star(uname, age, sex) {
this.uname = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
var zs = new Star('张三', 18, '男'); //调用构造函数返回的是一个对象
console.log(typeof zs); //判断数据类型 结果为object即对象
//调用属性和方法
console.log(zs.age); //18
console.log(zs['sex']); //男
zs.sing('我是罪人'); //我是罪人
构造函数与对象:
三,new关键字
四,遍历对象
for..in语句用于对数组或者对象的属性进行循环操作
//格式
for (变量 in 对象) {
循环体;
}
var obj = {
uname: '张三',
age: 18,
sex: '男',
sing: function() {
console.log('sang');
}
}
for (var k in obj) { //k不赋值
console.log(k); //k 变量 输出得到的是属性名或方法名
console.log(obj[k]); //输出属性值和方法
}
使用 for in 时里面的变量常用 k 或 key