[分享一些基础知识]

187 阅读2分钟
  • 面向思想: '类' 实例

      JS中的内置类: Array   String   Number   Function    Regrxp  Date   Object 
          字面量 var ary =[]
          构造函数  var ary = new Array() 
          万物皆对象。、、
          自定义类  function A(){}
          自定义类的实例只能通过new 的方式创建。; 
      常见设计模式
          单例模式 
          高级单例模式
          工厂模式
          构造函数模式
          原型模式
    
  • 原型链 ————> 原型图

    /* 对于原型图 有三句话 ,每一个函数(类)都有一个 默认的 prototype 属性 指向自己的原型对象 每一个实例(对象)都有一个__proto__的属性,指向所属类得原型对象 每一个默认的原型对象上 都有一个 constructor 属性 指向对应的构造函数本身

    /普通函数的执行过程 开辟一个作用域 形参赋值 变量提升 代码从上到下执行 / new 执行时 开辟一个作用域 形参赋值 变量提升 把this的指向改成这个堆内存 然后代码从上到下执行。 */

  • 私有属性

    //in 是用来查看某个属性 是否属于某个对象 换句话说 就是该对象能否调用到该属性 //in 只能判断出 某个属性是不是某个对象 但是不能区别出是否是他的私有属性 // obj.hasOwnProperty('xxx') 这个属性可以用来查看 xxx是否是 obj的私有属性 // hasOwnProperty 方法在基础类得原型上, 所以任何数据类型 (除去 null undefined )都能调用到该方法。。 //hasPubProperty

    // Object.prototype.hasPubProperty = function (key) { // //this 就是我们要用的obj; // //要去判断key是不是 this 的一个共有属性 // //首先是他的属性 然后不是私有属性

  • 原型重构 :注意constructor 的指向;

  • xxx instanceof xxx2 查看xxx到基类的原型链上 是否存在 xxx2的身影。 // 存在结果就是 true 不存在 结果就是false // 值类型的数据 instanceof 谁 都是 false