关于数据检测

  1. typeof 操作符
    • typeof检测引用数据类型时返回 object;
    • typeof 函数的时候返回function
    • typeof 基本数据类型的时候返回
      • number
      • string
      • boolean
      • 检测 null的时候返回的是object,因为null代表的是一个空对象指针,返回object在逻辑上更便于理解(高程三)
      • undefined
  2. obj instanceof class 运算符:
    • 用来检测对象是不是某类的一个实例,返回值是true或者是false
  3. obj.constructor

    a(c){
    1
    2
    3
    4
    5
    6
    7
    8
    this.b = c;
    this.d =function(){
    alert(this.b);
    }
    }
    var obj = new a('test');
    alert(typeof obj.prototype);//undefine
    alert(typeof a.prototype);//object
  4. prototype

    • new 运算符做了哪些事情
      1. var obj = {};也就是说,初始化一个对象obj;obj被Object初始化
      2. obj.proto = a.prototype : 指向构造函数的prototype属性
      3. a.call(obj);也就是会所构造obj,也可以称之为初始化obj;
    • 原型链的概念:每个对象都会在其内部初始化一个属性,就是proto,当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么它就会去proto里找这个属性,这个proto又会有自己的proto,于是就这样一直找下去。
      来源:博客文章-深入分析js中的constructor和prototype
    • a.prototype包含了两个属性
      • constructor:当前类的构造函数a
      • proto