美文网首页
JS 高级技巧

JS 高级技巧

作者: 怡宝丶 | 来源:发表于2018-06-22 10:45 被阅读0次

    安全类型检查

    typeof 检测类型机制并非完全可靠,所以直接使用 Object.prototype.toString.call(val)


    作用域安全的构造函数

    • 构造函数其实就是一个使用的了new操作符调用的函数, 当使用了new操作符时候,构造函数内部用到的this都指向了新创建的对象实例。
    • 如果不使用new操作符直接调用定义的构造函数,那么this就指向了window, 这是由于js的晚绑定造成的

      所谓 绑定(binding),即把对象的接口与对象实例结合在一起的方法。
      早绑定(early binding)是指在实例化对象之前定义它的属性和方法,这样编译器或解释程序就能够提前转换机器代码。在 Java 和 Visual Basic 这样的语言中,有了早绑定,就可以在开发环境中使用 IntelliSense(即给开发者提供对象中属性和方法列表的功能)。ECMAScript 不是强类型语言,所以不支持早绑定。
      另一方面,晚绑定(late binding)指的是编译器或解释程序在运行前,不知道对象的类型。使用晚绑定,无需检查对象的类型,只需检查对象是否支持属性和方法即可。ECMAScript 中的所有变量都采用晚绑定方法。这样就允许执行大量的对象操作,而无任何惩罚。

    function Person (name) {
      if(this instanceof Person) { //检查this对象是Person的一个实例
          this.name = name;
       } else {
          return new Person (name)
      }
    }
    

    相关文章

      网友评论

          本文标题:JS 高级技巧

          本文链接:https://www.haomeiwen.com/subject/aeohyftx.html