Js面向对象编程

1、什么是面向对象思想(编程思想角度)

(1)面向过程:关注的是解决问题的步骤

优点:在小型程序中代码量比较少,开发成本低

缺点:在构建大型项目是,代码逻辑不易捋顺、代码量大、代码编写繁琐,增加开发难度

(2)面向对象:关注的是解决问题所需要的对象(内容、角色),然后根据业务逻辑按一定的规则调用这些对象的相关功能、方法

优点:有弥补了面向过程编程思想的不足

缺点:在小型程序中不如面向过程思想灵活、方便

2、什么是面向对象语言(编程语言角度)

(1)什么是对象:万事万物皆为对象每一个具体的物品、实例就是一个对象:new Number()

(2)几个重要的概念:

     类

     对象(实例):属性(对象的特征)方法(对象的行为)

     封装

     继承

     多态

3js和面向对象的关系

Js是基于对象的语言,但是可以使用“面向对象”的思想让这个语言模拟java之类的面向对象语言

4、js如何创建对象?从一个“模板”(类、函数)那里创建出一个个具体的“东西”(对象)。如:从月饼模板中创建出月饼

      ①直接创建   优势:快捷、直观、方便

                             劣势:需要创建多个对象时,代码冗余

Js面向对象编程_第1张图片

      ②使用函数创建(工厂模式)     优势:解决了代码冗余问题

                                                               劣势:无法区分该对象的类型(如:系统类     型,number是Number()创建出来的,但是自定义类型无法获取到)

Js面向对象编程_第2张图片

      ③使用构造函数(函数名首字母大写)


                                                          优势:解决了获取对象类型的问题,使用构造函数创   建的对象自带一个constructor,通过该属性获取对象的类型(还可以使用instanceof检测对象是哪个类型的实例:(person instanceof Person),返回一个布尔值)

                                                           劣势:内存占用空间有点大(相对来说)

Js面向对象编程_第3张图片

(2) 工厂模式和构造函数创建函数的区别

         1.在函数中没有显示的创建对象

         2.直接把属性、方法赋值给了this指针

         3.没有return语句

        4.使用构造函数创建出来的对象可以识别这个对象属于哪一种类型

(3) 普通函数调用和构造函数调用的区别

        必须使用new操作符来创建出来的对象,如果像调用普通函数那样创建对象,就是在全局作用域中调用函数了,this指针会指向window对象

5、如何在js中使用面向对象

     (1)访问对象的属性

           1.点语法(.)和[ ]访问某一个属性

                   使用点语法访问属性,点后直接跟属性名

                  使用[ ]访问属性,[ ]里属性字符串必须是字符串类型的数据 或 保存属性名字的字符串变量

        2.使用for.....in....遍历对象的所有属性

             for (var property in per1) {

                         console.log(property+"="+ per1[[property]);

                   }

       3.删除属性:delete box1.name;

    

你可能感兴趣的:(Js面向对象编程)