前言
没有对象,就自己创建对象
没对象?new一个
一、对象是什么?
对象是一个具体的事物。
对象是一组无序的相关属性和方法的集合,所有的事物都是对象,比如,字符串,数值,数组,函数等
二、对象的使用
1.保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组。
代码如下(示例):
小明.姓名 = '小明'; xiaoming.name = '小明';
小明.性别 = '男' ;
xiaoming.sex =
'男' ;小明.年龄 = 18 ;
xiaoming.age = 18;
小明.身高 = 190 ;
xiaoming.height = 190;
三.创建对象的方法
1.对象字面量:
花括号{ }里面包含了表达对象的属性和方法
代码如下(示例):
// var obj ={} //创建了一个空对象
2.调用对象
- 对象名 . 属性值 console.log(obj.unname);
- 对象名 [ ' 属性名 ' ] console.log(obj['age']);
3.调用对象的方法
对象名 . 方法名(); obj.sayHi();
举个栗子:
var obj = {
unname: "小明",
age: 18,
sex: "男",
sayHi: function() {
console.log("hi~");
}
}
console.log(obj.unname);
obj.sayHi();
console.log(obj['age']);
注意:
1.里面的属性或方法采取键值对的形式
键 属性名 :值 属性值
2.多个属性或方法之间用逗号隔开
3.方法冒号后面跟的是一个匿名函数
2.用 new Object 创建对象
举个栗子:
var obj = new 0bject(); //创建了一个空对象
obj.unname = '小明';
obj.age = 18;
obj.sayHi = function() {
console.log('hi');
}
console.log(obj.unname);
obj.sayHi();
console.log(obj['age']);
注意:
1.利用等号赋值的方法,添加对象的属性和方法
2.每个属性和方法用分号隔开
3.构造函数创造对象
构造函数的优点:
1.重复相同代码
2.封装的不是代码,而是对象
3.可以一次创造很多对象
4.把相同的·代码的属性和方法封装到函数里
语法格式:
function 构造函数名(){
this.属性=值;
this.方法=function (){}
}
new 构造函数名();
举个栗子:
function Star(unname, age, sex) {
this.name = unname;
this.age = age;
this.sex = sex;
this.sing = function(song) {
console.log(song);
}
}
var xm = new Star('小明', 18, '男'); //调用函数返回的是一个对象
console.log(xm.name);
console.log(xm.age);
console.log(xm.sex);
xm.sing('月亮之上');
var xmei = new Star('小美', 19, '女')
console.log(xmei.name);
console.log(xmei.sex);
注意:
- 构造函数的名字的首字母要大写
- 构造函数不需要return就可以返回结果
- 调用构造函数必须用new
- 只要new Star() 调用这个函数就创建了一个对象 xm{}
- 属性和方法前面必须添加 this
new关键字的执行过程:
1.在内存中创建一个新对象
2.this指向新对象
3.执行构造函数里的代码,给这个新对象添加属性和方法
4.返回新对象(所以不需要return)
四、遍历对象
for in
for in 用于对数组或者对象的属性进行循环操作
语法结构:
for (变量 in 对象){
}
举个栗子:
var obj = {
unname: "小明",
age: 18,
sex: "男",
}
for(var k in obj ){
console.log(k); //k 变量 输出得到的是属性名
console.log(obj[k]); // obj[k] 输出的是属性值 不加引号,否则会变成字符串
}