JavaScript之对象赋值(浅谈一道面试题)
来源:互联网 发布:开票软件为何启动不了 编辑:程序博客网 时间:2024/06/04 17:43
今天来分享一道关于JavaScript的题目。
var myObject = { foo: "bar", func: function() { var self = this; console.log(this.foo); console.log(self.foo); (function() { console.log(this.foo); console.log(self.foo); }()); }};myObject.func();
程序的输出是什么?()
A bar bar bar bar
B bar bar bar undefined
C bar bar undefined bar
D undefined bar undefined bar
正确答案是:C
解析:
方法/函数是由谁(对象) 调用 的,方法/函数内部的 this 就指向谁(该对象);
注意:被谁调用,不是处于谁的作用域,即使在作用域
1、func是由myObject调用的,this指向 myObject。
2、self指向myObject,相当于 myObject的this的副本。
3、这个立即执行匿名函数表达式(IIFE)是由window调用的,this指向 window 。
4、IIFE的作用域处于myObject.func的作用域中,本作用域找不到self变量,沿着作用域链向上查找self变量,找到了指向 myObject对象的 self。
0 0
- JavaScript之对象赋值(浅谈一道面试题)
- 一道javascript面试题
- 浅谈一道java面试题
- 一道JavaScript面试题(setTimeout)
- 一道考察赋值语句的面试题
- 一道javascript算法面试题
- 一道关于JavaScript变量的面试题
- 一道Javascript面试题引发的血案
- 关于JavaScript的一道初级面试题
- Javascript面试题:如何给一个Javascript的对象属性赋值?如何取得属性值?
- Javascript面试题:如何给一个Javascript的对象属性赋值?如何取得属性值?
- java工程师 一道面向对象面试题
- 【面向对象程序设计常见面试题】赋值兼容(xx)
- 一道面试题(转)
- C之绝妙(一道很NB的面试题)
- 一道BT的面试题之我见
- 一道SQL的面试题之联想
- 一道SQL的面试题之联想
- yii2.0 写报错页面
- 发布--灰度升级dubbo provider
- Android N Audio: AF的设备加载
- Hackerrank Connect the country
- ,快速乘,快速幂,矩阵快速幂(求斐波那契数列)
- JavaScript之对象赋值(浅谈一道面试题)
- 基于HTTP的多线程文件下载功能实现
- Okhttp网络请求的封装类
- 程序员面试宝典--java static
- hashMap图解(不全)
- 二维数组中的查找
- NsObject的load和initialize方法
- 站在巨人的肩膀上
- 拆轮子系列之一步一步教你写FlowLayout