前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES5新特性

ES5新特性

作者头像
用户9979303
发布2022-10-28 15:32:16
2320
发布2022-10-28 15:32:16
举报
文章被收录于专栏:over文章

简介: 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.,只要传入可能变化的剩余几个实参值即可!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.严格模式
  • 2.保护对象,控制对象的属性和结构
  • 3.call、apply、bind替换this所指对象
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档