面向对象及

本文深入探讨了JavaScript中面向对象编程的关键概念,包括instanceof、isPrototypeOf、hasOwnProperty和in操作符的应用。重点讲解了封装性、继承性(原型链、冒充继承与组合继承)以及Call和Apply的作用。通过实例展示了三种继承方式并构建原型链图。

一、对象的方法

          

        1、instanceof 变量的类型

               instanceof 返回布尔值 相当于判断

               

       2、isPrototypeOf

              检测当前对象是否基于对应的构造函数创建出来的

              语法:构造函数.prototype.isPrototypeOf(对象名)

              

       3、hasOwnProperty

              判断属性或者方法是否属于构造函数内部

            语法:对象.hasOwnProperty(属性)

        

       4、in判断当前对象是否具有对应属性

              封装一个方法 传入 一个对象 key,判断这个key是否属于对象的原型上,返回布尔值

             怎么判断基于原型? 1.对象需要具有key    2.这个属性不是构造函数里面的

            语法:key in 对象

             

二、面向对象编程的特点

          1、抽象性: 通过对象来分析具体的问题

          2、封装性

               将属性和方法都封装到对象中,方便统一管理 便于维护 便于二次开发 安全性较高(私有)

               1.公开属性

                  在任何位置都可以随便访问和修改 ,修改过程中没有任何的限制

               

               2.私有属性

                  不能随意访问,必须通过指定的方法来访问和修改 

                 1.安全系数较高的属性    2.设置时不能随意设置

                  

          3、继承性

               将对象的属性和方法进行传递 ,Java C C++

               1. 如何实现 继承?

                 创建一个老虎类 继承 Animal中所有的属性和方法

               2. 当构造函数中如果没有对应的属性,怎样找这个属性?

                   当对象调用一个属性或者方法时,

                   查找顺序:  1.先去构造函数内部查找     2.再去原型中查找

                   

               1、第一种继承方式:原型链继承 

                     将父类对象挂载到儿子原型上

               2、第二种继承方法:冒充继承法

                    通过call或者apply改变this的指向性,直接讲构造函数在内部使用

                    

               3、第三种继承方法: 组合继承方式

                     原型链继承+冒充继承

                     

          4、多态性

                一个类 可以产生多种对象!js用不了!

三、Call和apply

         

          call()方法 改变this的指向性 第一个参数 this更改为哪个对象

          

          apply方法 改变this的指向性

          语法: apply(改变的对象,[1,2,3])

          

四、Max.max()

        Math.max() 返回一组数中的最大值用于max方法 只能参数列表 ,不能直接传入数组

        

实例: 

         1、创建一个人类然后继承学生类以及教师类,分别通过三种不同的继承方式

          

         2、自己写一个原型链继承,独立完成原型链图

              

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值