js创建对象
Posted by xiongmao; tagged with js对象 , 创建对象 , 对象的使用 , 构造函数 , 遍历对象
导读:
JS中对象
一.认识对象
在 JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组,函数等。
对象是由属性和方法组成的
属性:事物的特征,在对象中用属性来表示(常用名词)
方法:事物的行为,在对象中用方法来表示(常用动词)
二.创建对象
1.字面量创建对象
1.1 利用对象字面量创建对象{}
var obj = {}; //创建:创建了一个空的对象
①.对象字面量:就是花括号{}里面包含了表达这个事物(对象)的属性和方法
{}里面采取键值对的形式表示
键:相当于属性名
值:相当于属性值,可以是任意类型的值(数字类型,字符串类型,布尔类型,函数类型)
②.多个属性或者方法中间用的逗号隔开的
③.方法冒号后面跟的是一个匿名函数
var obj = {
uname: '张三疯',
age: 18,
sex: '男',
sayHi: function () {
console.log('hi~');
}
}
①.对象的使用
①.调用对象的属性 我们采用 对象名.属性名
console.log(obj.uname);
调用属性另一种方法 对象名['属性名']
console.log(obj['age']);
调用对象的方法 对象名.方法名()
obj.sayHi();
2利用new Object创建对象
利用 new Object 创建对象
var obj = new Object(); //创建一个空对象
我们是利用 等号 = 赋值的方法 添加对象的属性和方法
obj.uname = '张三疯';
obj.sex = '男';
obj.age = 18;
obj.sayHi = function(){
console.log('hi~');
}
console.log(obj.age);
console.log(obj['uname']);
obj.sayHi();
3.利用构造函数创建对象
利用构造函数创建对象
构造函数的语法格式:
function 构造函数名(){
this.属性 = 值;
this.方法 = function(){}
}
new 构造函数();
function Star(uname,age,sex){
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang){
console.log(sang);
}
}
var zs = new Star('张三',18,'男');//返回类型为对象object
console.log(zs.name);
zs.sing('冰雨');
console.log(typeof zs);
var ls = new Star('李四',28,'女');
console.log(ls.sex);
1. 构造函数名字首字母要大写
2.构造函数不需要return也能返回值
3.我们只要new Star() 调用函数就创建一个对象
4.构造函数必须使用 new
5.我们的属性和方法前面必须添加 this
构造函数和对象区别
构造函数:如Stars(),抽象了对象的公共部分,封装到了函数里面,它泛指某一大类(class)
创建函数,如 new Stars(),特指某一个1,通过new 关键字创建对象的过程我们也称为对象示例化
new关键字执行
1.在内存中创建一个新的空对象
2.让this指向这个新的对象
3.执行构造函数里面的代码,给这个新对象添加属性和方法
4.返回这个新对象(所以构造函数里面不需要return)
for in 遍历对象
/*
for in 遍历对象
语法:
for(变量 in 对象){
}
*/
var obj = {
name: '张三',
sex: '男',
age: 18,
};
for(var k in obj){
console.log(k); // k变量 输出得到的是属性名
console.log(obj[k]);//obj[k] 得到的是 属性值
}
小结
1.对象可以让代码结构清晰
2.对象复杂数据类型object
3.本质:对象就是一组无序的相关属性和方法的集合
4.构造函数泛指某一大类,比如苹果,不管是红色苹果还是绿色苹果,都统称为苹果
5.对啊啊想实例特指一个事物,比如这个苹果
6.for..in语句用于对 对象的属性进行循环操作