JavaScript中的对象
面向对象:根据需求找对象,所有的事都用对象来做,注重的是结果
面向对象特性:封装,继承,多态 (抽象性)
js不是面向对象的语言,但是可以模拟面向对象的思想
js是一门基于对象的语言
创建对象三种方式:
1.调用系统的构造函数创建对象
var 变量名= new Object(); Object 是系统的构造函数
2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
3.字面量的方式创建对象
1.调用系统的构造函数创建对象
<script>
var man=new Object();
//对象有特征---属性和行为---方法
//添加属性-----如何添加属性? 对象.名字=值;
man.name="Jack";
man.age=22;
man.sex="男";
//添加方法----如何添加方法? 对象.名字=函数;
man.eat=function () {
console.log("吃东西");
};
man.sleep=function () {
console.log("Sleeping..");
};
//输出对象的属性的值
console.log(man.name);
console.log(man.age);
console.log(man.sex);
//调用对象的方法
man.eat();
man.sleep();
</script>
如何一次性创建多个对象?
把创建对象的代码封装在一个函数中
//工厂模式创建对象
function createObject(name, age, sex) {
var obj = new Object();//创建对象
//添加属性
obj.name = name;
obj.age = age;
obj.sex = sex;
//添加方法
obj.eat = function () {
console.log("吃东西");
};
obj.say=function () {
console.log("Hello");
};
return obj;
}
//创建人的对象
var person=createObject("jackson",22,"男");
console.log(person.age);//22
var person2=createObject("mike",29,"男");
console.log(person2.name);//mike
2.自定义构造函数创建对象,自己定义一个构造函数,创建对象
<script>
//函数和构造函数的区别;名字是不是大写(首字母是大写)
function Human(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
this.message=function () {
console.log("我叫"+this.name+","+"年龄是:"+this.age+","+"性别是:"+this.sex);
};
}
//创建对象
var person1=new Human("james",33,"男");
person1.message();//我叫james,年龄是:33,性别是:男
console.log(person1 instanceof Human);//true
</script>
var person1=new Human("james",33,"男");
- 在内存中开辟(申请一块空闲的空间)空间,存储创建的新的对象
- 把this设置为当前的对象
- 设置对象的属性和方法的值
- 把this这个对象返回
3.字面量的方式创建对象
<script>
var obj = {};//创建了一个空对象
obj.name = "rose";
obj.age = 23;
obj.sex = "女";
obj.eat = function () {
console.log("Eat");
};
obj.eat();
var game = {
name: "cs",//注意加逗号
type: "fps",
start: function () {
console.log("开始游戏");
},//注意加逗号
end: function () {
console.log("结束游戏");
}
};//注意加分号
game.start();
game.end();
</script>
设置和获取对象属性的另外一种写法
<script>
function Person(name,age) {
this.name=name;
this.age=age;
this.play=function () {
console.log("喜欢玩游戏");
};
}
var boy=new Person("小明",11);
console.log(boy.name);
boy.name="老铁";
console.log(boy.name);
boy["name"]="老王";
console.log(boy.name);
console.log(boy["name"]);
boy["play"]();
</script>
JSON格式的数据
JSON格式的数据:一般都是成对的,是键值对,
json也是一个对象,数据都是成对的,一般json格式的数据无论是键还是值都是用双引号括起来的
var girl={//注意属性名要加双引号
"name":"小红",//注意是逗号
"age":18,
"sex":"女",
};
console.log(girl.age);
遍历对象
可以通过for-in循环
for(var key in girl){
console.log(key);
console.log(girl[key]);
}

浙公网安备 33010602011771号