面向对象的概念

面向对象: 他是一个变成思路,不会改变我们预期的效果;
优点: 使用面向对象,会让代码的复用性大大提高,便于迭代;
特征: 封装、多肽、继承、抽象

面向过程:小花去餐厅点餐吃饭
面向对象:小花 --去–吃 餐厅–点餐 小花.去 餐厅.点餐 小花.吃

创建对象的方法
  1. 字面量
let obj = {
	name:"麻子",
	sex:"男",
	age:"88",
	hobby:()=>{
		console.log("吃吃吃")
	},

}
  1. 通过构造函数和new 结合使用的普通函数
let obj2 = new object();
  1. 工厂模式
        let obj = {
            name:"张三",
            sex:"男",
            age:"17", 
            hobby:() => {
                console.log("喜欢你")
            },

        };
       
        function person(name,age,sex,fn){
            //1.(形参)运输材料 -->运输材料
            //2.创建对象并赋值 -->加工材料
            let obj = {}
            obj.name = name;
            obj.age = age;
            obj.sex = sex;
            obj.hobby = fn;
            return obj;  //3.出厂
        }

        obj.hobby=function (){
            console.log("你是一个士兵")
        }

        let dada = person("小仙","18","男");
        console.log(dada.name)
        let dada2 =person("大仙","20","男",fn)
        console.log(dada2.hobby)
        daxian.hobby();
  1. 构造函数
    函数名首字母大写,用来和普通函数进行区别
    new运算符也叫new构造器,配合使用的普通函数成为构造函数
	        function Person(name,age,sex,){
            let obj = {}
            obj.name = name;
            obj.age = age;
            obj.sex = sex;

                obj.hobby=function (){
                    console.log("你是一个")
                }
            return obj;
        }   
        let obj = new Person(); 

对象的使用

  1. 通过点语法
console.log(obj.name)
  1. 通过中括号
let name = "宝贝"
console.log(obj.['name'])

注释:如果通过点语法无法获取到对象中的属性和方法,可以通过中括号来获取

new的作用
  1. 执行函数
  2. 隐式创建一个对象
  3. 把该对象和函数this指向相互绑定
  4. 可以把this中的属性和方法都加到该对象上
  5. 函数执行完毕后返回改对象
        function tex(name){
            this.name = name;
            this.age = age;  // 这个this指向 obj
            this.sex = sex;
            this.hobby=function (){
                console.log("你是一个")
            }
        }
        // 构造函数  实例化对象 
        let obj =new txt("a");
        console.log(obj.name)        
发布了96 篇原创文章 · 获赞 26 · 访问量 7275

猜你喜欢

转载自blog.csdn.net/weixin_46146313/article/details/104199440