前端面试经典js题目Foo 与 getName
面试时遇到了2次该题,结果两次都没有看懂,感觉自己的js功底太差了,跟没学过一样。这道题很经典,网上查了一下,记录一下大佬的思路和自己的理解
题目:
function Foo(){getName = function(){console.log(1);};return this;
} Foo.getName = function(){console.log(2);
}Foo.prototype.getName = function(){console.log(3);
}var getName = function(){console.log(4);
}function getName(){console.log(5);
}//输出下列结果Foo.getName();getName();Foo().getName();getName();new Foo.getName();new Foo().getName();new new Foo().getName();
Foo.getName() => 2
Foo.getName()就是单纯的表示 输出函数 Foo的静态方法,所以直接输出2
getName() => 4
getName()因为提前声明的原因, 声明后被 var getNmae() = xxx 所覆盖 所以这里的输出 变成 4
Foo().getName() => 1
Foo()里的return this 是window,而window。getName 在Foo里被覆盖,所以输出为 1
getName() => 1
而这里getName() 在 Foo().getName() 之后,原window里的getName被覆盖,所以输出同上 为 1
new Foo.getName()
new Foo().getName()
new new Foo().getName()
前端面试经典js题目Foo 与 getName相关推荐
- 2020年前端面试之JS手写代码题合集
2020年前端面试之JS手写代码题合集 预计会有上千道题,后续慢慢补! 1. 写一个把字符串大小写切换的方法 function caseConvert(str){return str.replace ...
- 80道前端面试经典选择题
前言 看了一下各种面试题,选择题是必有的 所以我整理了一些经典的前端面试选择题,希望能对大家日后找工作有所帮助! HTML/CSS 1.在 css 选择器当中,优先级排序正确的是() A.id选择器& ...
- 2023前端面试(JS专题)
目录 一.前言 二.问题 1,JS数据类型 2,== 与 === 的区别? 3,JS的宏任务和微任务? 4,实现Jsonp 5,JS作用域 6,JS作用域+this指向+原型笔试题(高频) 7, JS ...
- 前端面试:经典面试题Foo与getName()
从一道面试题出发 按照惯例,还是从面试题出发.用一道面试题引出相关的知识(日常面向面试学习
- 前端面试经典题目合集--77题
(整理自网络,侵删) 1.请你谈谈Cookie的弊端 cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的. 第一:每个特定的域名下最多生成20个cookie ...
- 前端面试经典题目合集(HTML+CSS)
(整理自网络,侵删) 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层 分别是:HTML.CSS.JavaScript 作用:HTML实现页面结构,CSS完成页面的表 ...
- 拯救你的面试:前端面试大全--js面试题(超长文章)
一.什么是编译型语言?什么是解释型语言?JS 是什么类型的语言? 1.编译型语言 1. 解释 程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的 ...
- 【前端面试之JS】js如何实现继承
继承(inheritance)是面向对象软件技术当中的一个概念. 如果一个类别B"继承自"另一个类别A,就把这个B称为"A的子类",而把A称为"B的父 ...
- 前端面试系列-JS 异步编程
并发与并行的区别? 并发是宏观概念,我分别有任务 A 和任务 B,在一段时间内通过任务间的切换完成了这两个任务,这种情况就可以称之为并发. 并行是微观概念,假设 CPU 中存在两个核心,那么我就可以同 ...
最新文章
- 百度Apollo发布海量自动驾驶数据集,还有两项重磅挑战赛
- ngrok 内网穿透
- oracle集群图例
- 实战_05_SpringBoot整合redis单机版本
- 服务器运行容器工具大盘点!
- 【论文写作】本科、硕士研究生毕业论文格式问题
- UE4删除C++Classes下的类
- Android 开源项目及库汇总
- 手撕包菜磁力搜索引擎的开源说明
- 沟通的艺术I:什么是沟通
- 太空大战2d游戏制作
- 笔记本无线上网方式大全 (转)
- 【idea】智能花盆
- DS二叉树——Huffman编码与解码(不含代码框架)
- 输入一个整数,判断它是几位数
- 如何建立自动语音问卷外呼系统
- Play Framework 2.5.x 测试环境搭建
- C#进行MapX二次开发之MapX基础知识
- VC2012下MFC程序各控件的常用方法
- 2022新一代设备维修管理系统助力企业降本增效
热门文章
- 【转载】开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)
- 如何做一名优秀的下属
- 一键重装系统工具和U盘重装工具有什么区别?
- zotero+坚果云安装记录
- 如何取消坚果云的分享链接
- 【kaggle】Airbnb新用户的民宿预定结果预测
- react+amcharts5柱状图demo
- Java语言高级(第三部分)异常多线程 ->(个人学习记录笔记)
- 2021-12-19 《聪明的投资者》学习笔记-15.积极型投资者的股票选择--7个标准。低市盈率,价格低于净流动资产
- C语言——兔子繁殖问题多解