面向对象它是一个变成思路,不会改变我们预期的效果。
优点: 使用面向对象,会让代码的复用性大大的提高,便于迭代
创建对象
1. 字面量
let nan = "性别";
let obj = {
name:"哈哈",
nan:"男",
age:"17",
hobby:function(){
console.log("喜欢做题");
}
};
- 通过构造函数
let obj2 = new Object();
对象的使用
1.通过点语法
console.log(obj.name);
obj.hobby();
- 通过中括号
console.log(obj.nan);
console.log(obj["nan"]);
工厂模式
创建对象方式
let x = {
name:"哈哈",
nan:"男",
age:"17",
hobby:function(){
console.log("喜欢做题");
}
};
let d = {
name:"呵呵",
nan:"男",
age:"17",
hobby:function(){
console.log("喜欢做题");
}
};
创建对象的第三种方式: 工厂模式
function Person(name,age,sex,fn){
1. (形参) --> 运输材料
- 创建对象并赋值 --> 加工材料
let obj={};
function Person(name,age,sex,fn){
obj.name = name;
obj.age = age;
obj.sex = sex;
obj.hobby = fn;
return obj;// 3. 出厂
}
let dada = Person("嘿嘿","18","男");
function fn(){
console.log("123");
}
let daxian = Person("马","20","男",fn);
console.log(dada.sex); //男
console.log(daxian.name); //马
daxian.hobby(); //123
构造函数 new运算符
创建对象的第四种方式
构造函数: 函数名的首字母 需要大写, 以此来和普通函数进行区别
function Person(name,age,sex,fn){
this.name = name;
this.age = age;
this.sex = sex;
this.hobby = fn;
}
let obj = new Person();
new运算符: 也叫做new构造器, 配合使用的函数,被称为构造函数
new运算符的作用:
1.执行该函数
2.隐式创建一个对象
3.把该对象和函数的 this指向 互相绑定
4.可以把this中的属性和方法都加到 该对象上
5.函数执行后,返回该对象