美文网首页
js作用域你不得不知道的事

js作用域你不得不知道的事

作者: halapro_liu | 来源:发表于2020-05-23 00:49 被阅读0次
var length = 10
function fn () {
    console.log(this.length)
}

var obj = {
    length: 5,
    method: function (fn) {
        fn()
        arguments[0]()
    }
}

obj.method(fn, 1)
// 10
// 2

首先fn(),由于js的this指向取决于调用方法的作用域,因此,fn的this指向为全局作用域,在浏览器端为window,在node端则为global。

至于arguments0中,arguments 是一个对应于传递给函数的参数的类数组对象。其中arguments[0]为函数的第一个参数,即fn,因此fn中的this指向arguments。
因此,this.length === arguments.length,即参数个数,为2。

相关文章

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • JS作用域的练习

    Js作用域练习demo1 Js作用域练习demo2 JS作用域练习demo3 JS作用域练习demo4 JS作用域...

  • JS

    你不知道的JS 作用域作用域为可访问变量,对象,函数的集合。抛开遮蔽效应,作用域查找始终从运行时所处的最内部作用域...

  • js作用域你不得不知道的事

    首先fn(),由于js的this指向取决于调用方法的作用域,因此,fn的this指向为全局作用域,在浏览器端为wi...

  • 你不知道的JS-上卷

    作用域整体理解:JS作用域分为函数作用域,全局作用域,with和try catch形成的块级作用域。 JS引擎在编...

  • js 闭包

    一、js 作用域 讲闭包首先就要理解 js 的作用域。再 ES5 中,js 有两种作用域,全局作用域和函数作用域(...

  • 2019-08-13JS里面的作用域Scope

    作用域指一个变量的作用范围。 JS的作用域 在JS中,有两种作用域 全局作用域直接编写在script标签中 JS代...

  • 干货!月薪80k前端大佬面试笔记:JS闭包解析!

    三点注意事项 JS没有块级作用域,只有全局作用域和局部作用域(函数作用域)。 JS中的作用域链,内部的作用域可以访...

  • JavaScript作用域的理解

    作用域:就是起作用的区域。JS的作用域规定了变量和函数可访问的范围。JS作用域分为:全局作用域和局部作用域 全局作...

  • JS 作用域链、导入导出

    1. JS 的作用域链 作用域在 JS 中表示变量的可访问性和可见性。JS 作用域有 3 种:1. 全局作用域;2...

网友评论

      本文标题:js作用域你不得不知道的事

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