ES5新特性

简介: es5

1.严格模式

在程序点公布写"use strict"

①禁止给为声明的变量赋值  ------> 避免了内存泄漏和全局污染

②静默失败升级为错误  ------->静默失败,也会报错!便于调试

③普通函数调用和匿名函数自调中的this不再指向window,而是指向undefined,防止内存泄漏和全局污染

④禁止使用arguments.callee -------> 递归是使用,但为了避免紧耦合,可用循环代替

2.保护对象,控制对象的属性和结构

①   保护对象的属性

         1.writable:true/false  是否可修改这个属性

         2.enumerable:true/false   是否可被  for in遍历到 (但是只能防住for in,不能防住清醒访问)

         3.configurable:true/false  (a.是否可删除该属性   b.是否可修改前两个开关)其中configurable一旦改为false是不可逆的

  ②    保护对象的结构

         1.防扩展:禁止添加新属性:obj.preventExtensions(obj)    默认是true

         2.密封:在兼具防扩展的同时,进一步禁止删除现有属性  object.seal(obj)

         3.冻结:在兼具密封的基础上,进一步禁止修改属性的值     object.freeze(obj)

3.call、apply、bind替换this所指对象

     1.函数.call("要替换的对象",参数一,参数二,.......):

       2. 函数.apply("要替换的对象",数组),当实参列表为一个数组的时候才用apply,通常是将数组整体传入,现讲数组打散,然后分别将参数传给原函数

       3.var  newobj = obj.bind()    bind的用法和前两个有所区别.bind是在原函数的基础上创建一个新函数的副本,并永久替换新函数中的this为指定的对象。新函数中的this和开头部分形参,已被永久替换为固定的对象和固定的参数值。今后如果需要反复调用新函数可使用bind替换this.,只要传入可能变化的剩余几个实参值即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

over℡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值