JavaScript笔记(一)

2020-06-05  本文已影响0人  执剑饮烈酒

一、面向对象面向过程的区别

    1、什么是js对象

        js对象:属性和方法的集合,js所有数据都可以看成对象。

        面向过程:专注于过程,注重过程,参与每一个步鄹。

        面向对象:只关注结果,不在意细节。

    2、各自优缺点

        面向过程:

            缺点:不适合大型项目,代码可维护性低,可扩展性比较低。

            优点:不需要实例化对象,性能好点

        面向对象:

            缺点:

            优点:代码可维护性高,可扩展性高。

    课外扩展

        typeof检查变量的类型,返回一个字符串,例如:string、number、boolear等等。

        instanceof 判断一个实例是否属于某种类型;

        a instanceof b 用于判断a是否是b的实例,用于继承关系;

        c instanceof Array 判断一个c是否是一个数组;

二、面向对象创建方式

    1、字面量方式

        var people = {属性名:属性值,方法名:方法体}

        var perple = {

            name : '达康',

            say:function(){

                函数体

            }

        }

        访问对象属性方法的方式

        obj.name  obj['name'];

        obj.say();

        对象添加属性  属性名:属性值

        people.phone = '12345566';

        删除    delete(对象:属性名)

    2、实例化对象

    var obj = new Object();

    obj.name = '达康'

    3、工厂模式

        function Car(){

            //实例化对象

            var obj = new Objcet ;

            obj.name = '比亚迪';

            obj.age = '1.8T;

            obj.run  = function (){

            }

            //返回对象

            return obj;

        }

        Car()  //调用方法

        var obj1 = Car(); 

    4、构造函数模式

        function Phone (){

            this.brand = '华为',

            this.ca = function(){

                console.log('9999)

            }

        }

        //实例化

        var obj = new Phone();

    构造函数模式和工厂模式的区别

        构造函数:

            1、构造函数模式内部不需要实例化对象,不需要返回对象,

            2、在函数外部使用new实例化

            3、函数内部使用this关键字定义属性、方法;

        工厂模式:

            1、函数内部需要实例化对象,需要返回值

            2、函数内部使用实例化对象的变量定义方法属性

            3、外部不需要实例化

三、

    '.'和'[]'的区别

        .访问的属性名必须符合标识符的命名规范,属性名不能使用变量名,不需要加引号'';

        []访问的属性名可以不符合命名规范,属性名可以使用变量名,可以加引号'';

四、对象遍历方法

如果使用for in 遍历对象,只能使用[]访问对象的属性方法

        for(key in obj){

    obj[key]

    }

上一篇下一篇

猜你喜欢

热点阅读