为什么在原生JS中要避免使用这种可能导致问题的代码写法?

更新于
2026-07-30 15:18:44
22阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计765个文字,预计阅读时间需要4分钟。

为什么在原生JS中要避免使用这种可能导致问题的代码写法?

目录+块级函数+直接修改对象的prototype+原型+with+callee+caller+eval+块级函数+严格模式,在ES6之前禁止使用。ES6开始可使用,函数的作用域为声明该函数的块级作用域。非严格模式下,应避免使用。

目录
  • 块级函数
  • 直接修改对象的 prototype 原型
  • with
  • callee
  • caller
  • eval

块级函数

严格模式下,在 ES6 之前应禁止使用。ES6 开始可以使用,函数的作用域为声明该函数的块内部。非严格模式下应禁止使用。

if(true) { function test() { //块级函数 console.log(1); } } test();

为什么在原生JS中要避免使用这种可能导致问题的代码写法?

直接修改对象的 prototype 原型

浏览器对原型进行了优化,在调用实例之前,会为对象的方法提前规划内存位置。所以不可以直接修改 prototype 原型。

阅读全文

本文共计765个文字,预计阅读时间需要4分钟。

为什么在原生JS中要避免使用这种可能导致问题的代码写法?

目录+块级函数+直接修改对象的prototype+原型+with+callee+caller+eval+块级函数+严格模式,在ES6之前禁止使用。ES6开始可使用,函数的作用域为声明该函数的块级作用域。非严格模式下,应避免使用。

目录
  • 块级函数
  • 直接修改对象的 prototype 原型
  • with
  • callee
  • caller
  • eval

块级函数

严格模式下,在 ES6 之前应禁止使用。ES6 开始可以使用,函数的作用域为声明该函数的块内部。非严格模式下应禁止使用。

if(true) { function test() { //块级函数 console.log(1); } } test();

为什么在原生JS中要避免使用这种可能导致问题的代码写法?

直接修改对象的 prototype 原型

浏览器对原型进行了优化,在调用实例之前,会为对象的方法提前规划内存位置。所以不可以直接修改 prototype 原型。

阅读全文