1.利用对象字面量创建对象{}
var obj={
uname: '张三疯',
age: 18,
sex: '男',
sayHi:function(){
console.log('hi');
}
}
(1)里面的属性或者方法采用键值对的形式 键 属性名 : 值 属性值
(2)多个属性或者方法中间用逗号隔开
(3)方法冒号后面跟的是一个匿名函数
2.使用对象
(1)调用对象的属性 采取 对象名.属性名 .理解为 的
console.log(obj.uname);
(2)调用属性还有一种方法 对象名['属性名']
console.log(obj['age']);
(3)调用对象的方法 对象名.方法名() 括号别忘
obj.sayHi();
变量、属性、函数、方法的区别
1.变量和属性都是用来存储数据的
变量 单独声明并赋值 使用的时候直接写变量名 单独存在
属性 在对象里面的不需要生命 使用的时候必须是 对象.属性
2.函数和方法的相同点 都是实现某种功能 做某件事
函数是单独声明 并且调用的时候 函数名() 单独存在的
方法 在对象里面 调用的时候 对象.方法()
利用 new object 创建对象
var obj = new Object();
obj.uname= '张三疯';
obj.age=18;
obj.sayHi= function(){
console.log('hi');
}
(1)我们是利用 等号赋值的方法 添加对象的属性和方法
(2)每个属性和方法之间用 分号 结束
利用构造函数创建对象
为什么需要构造函数? 因为前面两种创建对象的方式一次只能创建一个对象
构造函数 就是把对象里面一些相同的属性和方法抽象出来封装到函数里面
构造函数的语法格式:
function 构造函数名(){
this.属性 = 值;
this.方法 = function(){}
}
new 构造函数名();
(1)构造函数名字首字母要大写
(2)构造函数不需要return就可以返回结果
(3)调用构造函数必须使用new
(4)我们只要new star() 调用函数就创建一个对象
(5)属性和方法前面都要加this
function Star(uname,age,sex){
this.name=uname;
this.age=age;
this.sex=sex;
this.sing=function(sang){
console.log(sang);
}
}
var ldh=new Star('刘德华',18,'男');
console.log(ldh.name);
console.log(ldh['age']);
ldh.sing('冰雨');
new关键字执行过程
1.new构造函数可以在内存中创建了一个空的对象
2.this就会指向刚才创建的空对象
3.执行构造函数里面的代码 给这个空对象添加属性和方法
4.返回这个对象
//for in 遍历对象
var obj={
name: 'lulu',
age: 18,
sex: '女'
fn:function(){}
}
for(var k in obj){
console.log(k); //k 遍历 输出 得到的是属性名
console.log(obj[k]); //obj[k]得到的是属性值
}