对象:特指的某个事物,具有属性和方法
特征---->属性
行为---->方法
追哥:------>姓名,性别,年龄,吃,睡觉,玩
创建对象的三种方式:
1.字面量的方式
var person1 = {
name: "追哥",
age: 20,
sex: "男",
eat: function () {
console.log("吃重庆火锅");
},
playGame: function () {
console.log("玩王者荣耀");
}
};
console.log(person1.name);// 输出 追哥
person1.eat();// 输出 吃重庆火锅
2. 调用系统的构造函数
var person2 = new Object();
person2.name = "老鼠人";
person2.age = 20;
person2.sex = "男";
person2.eat = function () {
console.log("吃臭豆腐");
};
person2.playGame = function () {
console.log("王者荣耀真好玩");
};
console.log(person2.name);// 输出 老鼠人
person2.playGame();// 输出 王者荣耀真好玩
3.自定义构造函数(常用)
//方便区分,函数名一般大写
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.play = function () {
console.log("天天打游戏");
};
}
//实例化对象
var per = new Person("蝙蝠人", 20, "男");
per.play();// 输出 天天打游戏
工厂模型创建对象
function createObject(name, age) {
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayHi = function () {
console.log("您好");
};
return obj;
}
//直接调用函数便创建对象
var person = createObject('琦玉老师',22)
工厂模型和自定义构造函数的区别:
共同点:都是函数,都可以创建对象,都可以传入参数
工厂模式:函数名是小写,有new,有返回值,new之后的对象是当前的对象,直接调用函数就可以创建对象
自定义构造函数:函数名是大写(首字母),没有new,没有返回值,this是当前的对象,用new的方式来创建对象