欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面向对象的思想

程序员文章站 2022-05-25 20:49:57
...

 argument对象伪数组

面向对象的思想

 面向对象的思想

<script>
        /*
        * 编程思想:把一些生活中做事的经验融入到程序中
        * 面向过程:凡事都要亲力亲为,每件事的具体过程都要知道,注重的是过程
        * 面向对象:根据需求找对象,所有的事都用对象来谈,注重的是结果
        *
        * 面向对象特性:封装,继承(JS里面没有类的概念),多态(JS也没有这个概念)
        * JS不是面向对象的语言,但是可以模拟面向对象的思想
        * JS是一门基于对象的语言
        *
        *对象:有特征和行为,具体特指某一个事物
        *
        * 创建对象的三种方式:
        * 1.调用系统的构造函数创建对象
        * var 变量名 = new Object();
        *
        *
        * 2.自定义构造函数
        *
        *
        *
        *
        *
        *
        * */
        var obj = new Object();
        //对象有特征---属性    行为---方法
        //添加属性----如何添加属性?  对象.名字=值;
        obj.name = "小辉";
        obj.age = 38;
        obj.sex = "女";
        //添加方法--如何添加方法?对象.名字=函数;
        obj.eat = function () {
            console.log("我喜欢吃油炸榴莲凉拌臭豆腐和大蒜");
        };
        obj.play = function () {
            console.log("我喜欢打小杰");
        }
        console.log(obj.name);
        console.log(obj.sex);
        console.log(obj.age);
        obj.eat();
        obj.play();
    </script>

 

工厂模式常见对象

<script>
        /*
        * 如何获取该变量(对象)是不是属于什么类型的?
        * 语法:
        * 变量 instanceof 类型的名字---------->布尔类型,结果为true,false
        *
        * 在当前的对象的方法中,可以用this关键字代表当前的对象
        * */
        //人的对象
        // var person = new Object();
        // person.name = "小张";
        // person.age = 18;
        // person.sayHi = function () {
        //     //在当前这个对象的方法中是可以访问当前这个对象的属性值
        //     console.log("您好,吃了没您,我叫"+person.name);
        // }

        //如何一次性创建多个对象?吧创建对象的代码封装在一个函数中
        //工厂模式创建对象
        function creatObject(name,age) {
            var obj = new Object();
            obj.name = name;//第一个name是属性,第二个name是变量名
            obj.age = age;
            obj.sayHi=function () {
                console.log("阿尼哈谁哟,我叫:"+this.name+"我今年"+this.age);
            };
            return obj;//必须要返回这个对象
        }
        //创建人的对象
        var per1 = creatObject("小张",18);
        per1.sayHi();
        //在创建一个人的对象
        var per2 = creatObject("小辉",40);
        per2.sayHi();
        
    </script>

自定义构造函数

面向对象的思想

 对象占了两块空间,一个是栈一个是堆.堆里面是对象,栈里面是该对象所在空间的地址(引用).

 

字面量的方式创建对象

 <script>
        //字面量方式创建对象
        var obj={};//空对象
        //添加属性
        obj.name = "小白";
        obj.age = 10;
        //添加方法
        obj.sayHi=function () {
            console.log("我是"+this.name);
        };
        obj.sayHi();
        //优化后的写法
        var obj2={
            name:"小明",
            age:20,
            sayHi:function () {
                console.log("我是"+this.name);
            },
            eat:function () {
                console.log("吃了");
            }
        };
        obj2.sayHi();
        obj2.eat();
    </script>