前言
没有对象,就自己创建对象
没对象?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] 输出的是属性值 不加引号,否则会变成字符串
-
}
</article>