• js面向对象


    1.什么是对象?

      多个数据的封装体

      用来保存多个数据的容器

      一个对象代表现实中的一个事物

    2.为什么要用对象?

      统一管理多个数据

    3.如何访问对象内部数据?

      ( . )属性名:编码简单,有时不能用

        [ ‘ 属性名 ’ ]:编码复杂,能通用

    4.什么时候必须使用[ ‘ 属性名 ’ ]的方法?

      属性名包含特殊字符: - 空格

      属性名不确定

    5.js中如何去生成对象?

      (1)单例模式/字面量定义 var obj={name:"zhang"}

      (2)var obj=new Object() 内置类

          Obj.name="zhang"

          js内置的类 string array object number boolean  date function

      (3)工厂模式

          function create(){

            var obj={}

            Obj.name=

            return obj;

          }  

      (4)构造函数

          function Person(){

            this.name="li"

          }

          var zhang=new Person()

    6.this的问题

      任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window

      所有函数内部都有一个变量this

      它的值是调用函数的当前对象

    7.原型对象

      把相同的属性和方法写在构造函数的原型对象里。
      构造函数的实例对象 new 出来的实例就全部可以访问。
      原型对象存在的最大作用就是节省内存空间

    8.原型prototype

      每个函数 类天生自带一个prototype的属性,这个属性是个对象,它里面天生自带一个constructor的属性,属性值是当前函数/类本身;

      每个实例对象 天生自带一个__proto__的属性,这个属性是对象,它指向当前实例对象的类的原型

    9.原型链

      每个对象天生有一个__proto__,指向类的原型。

      prototype 和 __proto__

      (1).prototype是类的或者函数的,__proto__是对象的。

      (2).prototype是存储机制,程序员来实现。__proto__是查找机制(浏览器的)。

      例子:zhangsan.name

        zhangsan这个对象首先看name是私有的,是就直接使用,不是的就通过__proto__往他的类的prototype上查找,有就直接使用,没有就继续往上查找,直到查找到基类Object,没有就是undefined,有就直接使用,这种查找机制叫原型链。

    10.类的继承

    1. 原型继承 将父类的实例对象赋值给子类的原型,私有的公有的都继承为公有的
    2. Call继承  call方法是函数/类天生自带的一个方法,将父类私有的继承为子类私有的
    3. 冒充对象继承   将父类私有的和公有的都继承为子类私有的,使用for  in
    4. 混合继承  私有的继承为私有的  私有的和公有的再次继承为公有的
    5. 组合继承 私有继承为私有  公有继承为公有

        私有继承私有  借助call 公有继承为公有 不能是原型赋值给原型。因为原型是对象,是复合数据类型,是地址赋值给了前者,导致二者指向同一个原型,得克隆。   

        Js的克隆如何实现   var obj2 = object.create(obj1)

        6.中间类继承 (伪数组)

  • 相关阅读:
    Struts2SpringHibernate整合示例,一个HelloWorld版的在线书店(项目源码+详尽注释+单元测试)
    Java实现蓝桥杯勇者斗恶龙
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 224 基本计算器
    Java实现 LeetCode 224 基本计算器
  • 原文地址:https://www.cnblogs.com/QQ2534978223/p/11359037.html
Copyright © 2020-2023  润新知