创建对象的方式
给对象添加属性
对象名称.属性名称 = 值;
给对象添加行为
对象名称.行为名称 = 函数;
方式一:
let obj = new Object(); //等号右边可以用 {}代替
obj.name = "张张";
obj.age = 24;
obj.say = function () {
console.log("hello guys!");
}
console.log(obj.name);
console.log(obj.age);
obj.say();
方式二:
let obj = {
name: "张张", // 注意点: 属性名称和取值之间用冒号隔开, 属性和属性之间用逗号隔开
age: 24,
say: function () {
console.log("hello guys!");
}
};
console.log(obj.name);
console.log(obj.age);
obj.say();
函数和方法的区别 this
函数:函数就是没有和其它的类显示的绑定在一起的, 我们就称之为函数
方法:方法就是显示的和其它的类绑定在一起的, 我们就称之为方法
- 函数可以直接调用, 但是方法不能直接调用, 只能通过对象来调用
- 函数内部的this输出的是window, 方法内部的this输出的是当前调用的那个对象
无论是函数还是方法, 内部都有一个this
this是什么? 谁调用了当前的函数或者方法, 那么当前的this就是谁
工厂函数
工厂函数就是专门用于创建对象的函数, 我们就称之为工厂函数
let obj = {
name: "张张",
age: 24,
say: function () {
console.log("hello guys");
}
};
let obj = {
name: "欣欣",
age: 23,
say: function () {
console.log("hi guys!");
}
};
function createPerson(myName, myAge) {
let obj = new Object();
obj.name = myName;
obj.age = myAge;
obj.say = function () {
console.log("hello guys");
}
return obj;
}
let obj1 = createPerson("张张", 24);
let obj2 = createPerson("欣欣", 23);
console.log(obj1);
console.log(obj2);