js高级知识点

  • 构造函数中常用的方法
  1.  instanceof    检测变量类型的方法

 

2.  构造函数的方法 ,构造函数原型中的  isPrototypeOf() 判断对应对象是否是基于对应构造函数创建的

 3. 对象.hasOwnProperty(属性名 key)  判断当前属性名是否在其构造函数里

 

4.  in 判断对象是否具备对应属性    key in 对象

5.  编写一个方法,判断对象的当前属性 ,是否是从原型中得到的

如果一个对象具有对应属性 ,但是该属性不是从构造函数中得到的,那么该属性就是在原型中

  • 面向对象编程面向对象编程的特

1.  面向对象编程的特点

         抽象性:通过对象分析问题 

        封装性:属性以及方法封装到对象中,节约维护成本,安全 

        继承性:JAVA,PYTHON 会讲继承性 

        多态性:一个类可以创建 多种对象 js基本用不到

2.  公开属性key:可以通过对象任意传递    不安全

 

参数:可以任意的传递,任意修改,任意的获取,只要找到对应对象就可以任意的去更改的对应属性,不安全

3. 属性key:只能通过方法对应的访问以及设置,无法通过对象直接获取

   3.1 如何获取私有属性:

        1)创建布局变量,通过局部变量实现私有属性

         2)    通过get和set方法获取和设置对应的私有属性

   3.2  get和set的作用以及目的

        get:获取对应的私有属性

        set:更改对应的私有属性

        目的:保证属性的安全,增加参数的安全性,保证编程的完善 

 

  • 面向对象编程继承性

 继承性:父类 ,写公共的方法和属性;子类继承,节约代码

动物类 都具有的属性和方法 —父类

狗类 ,猫类 ,老虎类,狮子类—子类 

1.  原型链继承:将Animal对象赋值给Dog原型上,让父级对象作为子集的原型

 

问题:无法对父级属性进行初始化,所有的属性都是相同的

2.   冒充继承:通过call或者apply更改对应的this指向完成继承

 

问题:冒充继承无法继承 原型中的方法 

call和apply 作用:改变this的指向 

    2.1.  call(对象,参数) 更改对应的this指向,将其对应的this指向,指向参数对象

     2.2.  apply(对象,[1,2,3])更改对应的this指向,将其对应的this指向,指向参数对象 

      2.3 Math对象

      Math.max()   返回一组数中最大的数  

      例:求一个数组中的最大值 

 

3.  混合继承:通过冒充继承来继承对应属性 ,通过原型继承,继承对应方法  

 

四、ES6

ES6:新时代JS语法的统称,js新的语法标准

便利更新:1)面向对象,由于js没有类,所以存在构造函数  ES6有class类

                  2)出现一个新的作用域:块级作用域 (全局 ,作用域)

1.  let const  全局 局部 块级。let 定义变量,const 定义常量

2.  var 变量名=值   全局作用域 局部作用 只有在函数内部才叫局部

3.第一个区别:存在块级作用域 {} if for  

4.第二个区别 :var定义变量具有默认的提升功能  let和const不具有提升功能 

 5.第三个区别:var定义变量可以重复定义,let不允许重复定义

 

 6. 第四个区别:var会被挂载都window上,let 和const不会

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值