• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

JavaScript高级程序设计-3

开发技术 开发技术 5小时前 1次浏览

高级技巧

  • 使用JavaScript有多种风格,一般来讲,要么使用过程方式,要么使用面向对象方式,鉴于其天生的动态特性,还有更复杂和有趣的模式

高级函数

安全的类型检测
  • JavaScript内置的类型检测机制并非完全可靠
    Safari在对正则表达式应用typeof操作符时会返回”function”
    instanceof操作符在存在多个全局作用域(比如一个页面包含多个框架)的情况下会出很多问题
  • 在Web开发中能够区分原生与非原生JavaScript对象非常重要,这样能确切地知道某个对象到底有哪些功能,但在这方面,由于浏览器开始原生支持JSON对象了,很难确定页面中的JSON对象是不是原生的
  • 解决上述问题的办法
    (以后再写😈)
作用域安全的构造函数
  • 构造函数就是一个使用new操作符调用的函数,当使用new调用时,构造函数内用到的this对象会指向新创建的对象实例,问题出在没有使用new操作符调用构造函数的情况:
    this对象是在运行时绑定的,将构造函数作为普通函数调用时,this就会映射到全局对象window上,导致错误对象属性的意外增加或修改
  • 解决上述问题的办法是创建一个作用域安全的函数,作用域安全的构造函数在进行任何更改前,首先确认this对象是正确类型的实例,如果不是,就创建新的实例并返回
  • 实现这个模式后,就锁定了可以调用构造函数的环境,如果使用构造函数窃取模式的继承且不使用原型链,这个继承会被破环,解决这一问题的办法(以后再讲😈)
  • 推荐作用域安全的构造函数作为最佳实践
惰性载入函数
  • 浏览器间的差异是我们不得不使用大量的if语句来检测,如果浏览器支持这种能力,这样的测试就变得没必要了,为了使这种检测不必每次执行,提高代码的运行速度,使用成为惰性载入的技巧(更多详情以后再讲🐴)
函数绑定
  • 函数绑定要创建一个函数,可以在特定的this环境中以指定参数调用另一个函数,该技巧常常和回调函数与事件处理程序一起使用,以便在将函数作为变量传递的同时保留代码执行环境
  • ECMAScript5定义了一个原生的bind()方法,简化了函数绑定
函数柯里化(function currying)
  • 用于创建已经设置好了一个或多个参数的函数
  • 基本方法与函数绑定一样:使用闭包返回一个函数
  • 柯里化函数是动态创建的:调用另一个函数并为它传入要柯里化的函数和必要参数
  • 柯里化函数和绑定函数都提供了强大的动态函数创建功能

防篡改对象(tamper-proof object)

  • JavaScript中任何对象都可以被在同一环境中运行的代码修改,这一共享的特性可能会让开发人员意外地修改别人的代码,设置用不兼容的功能重写原生对象,ECMAScript5致力于解决这个问题,可以让开发人员定义防篡改对象
  • 注意:一旦把对象定义为防篡改,就无法撤销
  • 不可扩展对象
  • 密封的对象
  • 冻结的对象

高级定时器

(以后再讲🐴)

自定义事件

(以后再讲🐴)

拖放

(以后再讲🐴)

离线应用与客户端存储

JavaScript高级程序设计-3
(详情以后再讲🐴)

最佳实践

JavaScript高级程序设计-3
(详情以后再讲🐴)

新兴API

JavaScript高级程序设计-3
(详情以后再讲🐴)


程序员灯塔
转载请注明原文链接:JavaScript高级程序设计-3
喜欢 (0)