面试题1

let len = 10;
function fn() {
console.info(this.len)
}
fn(); // A
let Person = {
len: 5,
say: function() {
fn(); // B
arguments[0](); // C
}
}
Person.say(fn);

三处的输出结果均为 undefined

A 处执行结果

  • fnthis 指向为 window
  • let 声明的变量不挂载在 window 对象上
  • 输出结果为:window.len = undefined;

B处的执行结果

  • say 函数的 this 指向为 Person
  • fnthis 指向依然为 window
  • 输出结果依然为:window.len = undefined

C 处的执行结果

  • arguments[0]() 相当于 arguments.fn()
  • fnthis 指向为 arguments
  • 输出结果为:arguments.len = undefined

面试题2

var length = 10;
function fn() {
console.info(this.length)
}
fn(); // A
let Person = {
len: 5,
say: function() {
fn(); // B
arguments[0](); // C
}
}
Person.say(fn);

分别输出 10, 10, 1

  • A , B 处直接输出 挂载到 window 对象下的 10
  • C 处输出 arguments.length = 1

最新文章

  1. 一键保存Feedly里的文章到有道笔记
  2. linux 查找文件的命令
  3. Java(二)
  4. Triangle leetcode
  5. 【OpenStack】OpenStack系列7之Nova详解
  6. [Objective-c 基础 - 2.5] NSString
  7. iOS内存管理系列之一:对象所有权与引用计数
  8. cocos2dx之lua项目开发中MVC框架的简单应用
  9. Dom编程(一)
  10. Value '0000-00-00' can not be represented as java.sql.Date
  11. LISTCTRL控件方法
  12. Http跨域时的Option请求
  13. Redis in .NET Core 入门:(5) Sorted SET
  14. 浏览器DOM事件触发
  15. JAVA中byte为负数处理
  16. 自己动手实现java数据结构(四)双端队列
  17. 【PAT】B1084 外观数列(20 分)(纯C)
  18. navicat连接mysql时出现2003(10060)错误
  19. 【Logstash系列】使用Logstash作为收集端采集IIS日志
  20. Linux more命令详解

热门文章

  1. 【总结】Asp.Net Mvc 后台控制器获取页面发来的参数类型
  2. div嵌套引起的内层margin-top对外层div起作用
  3. 半导体质量管理_eCAP LineWorks SPACE eCAP(电子OCAP)
  4. BAT 非右键方式以管理员身份运行批处理
  5. 1.Unity3d的新建场景和保存场景
  6. Java集合类初探
  7. mysql解压缩版安装和卸载
  8. Scala 基础(九):Scala 函数式编程(一)基础(一)概念、定义、调用机制
  9. java 数据结构(八):Iterator接口与foreach循环
  10. Drf06 /drf总结