一道短小精悍的JS小题目

看到题目你是不是以为我在开车,没错,我就不承认,你能咋的,你瞅啥,别瞅我,瞅题

题目是这样式的

结果是啥呀,这里我就不买关子了,结果是undefined,相信基础好一点的大佬们一眼就能看出来,像我这种就必须两只眼一起看,这里我又想问一句了,大佬们闭着一只眼看代码不累吗

让我们先简单明了的来解释一下上面的代码

首先foo()实际上是由window调用的

由于普通函数this指向调用他的对象,所以foo中的this实际上指向的window

而此时又相当于是window调用了bar函数,所以bar里面的this也是指向window

此时,实际上要输出的是window.a,而在window这个全局对象上并没有a这个属性,所以输出了undefined

现在我们回到最开始的样子,并在window对象上绑定一个a属性

 结果输出:我是window上的a属性

这里特别注意一点,可能有的同学会疑问为什么是输出undefined,而不是输出not defined呢?

因为JS访问对象上未定义的属性会返回undefined,而访问未声明的变量时则会抛出not defined。要是你还想再深究原因的话,明人不说暗话,我目前的水平也究不动,感觉是和引擎内部的实现有关,有知道的老铁们可以在我头上拍三下,夜深人静的时候我去你房里我们深入研究一波

原文地址:https://www.cnblogs.com/suihang/p/11638387.html

时间: 2024-10-09 02:24:07

一道短小精悍的JS小题目的相关文章

考考你!一道有趣的Javascript小题目

今天的内容很简单,给大家分享一个有趣的Javascript小题目. 题目很简单,就是填空: var a = ______; var b = a;alert(a==b); // alert "false" 请将程序补充完整,使得弹出的对话框显示为"false". 先答出的有奖哦 ^ ^ --------------------- 用简单而风趣的形式表达出自己的想法是我一直追求的目标(当然,目前还处于"XX主义初级阶段",还有很长的路要走). 如果你

一个小题目的三种不同的解法

有一道很经典的Java题目,虽然很简单,但是可以开发出很多种不同的解法,这是我在今天重新复习了正则的时候,忽然回想起来的.题目的名字是:"查找一个小串在大串中出现的次数."有三种思路,第一种,利用substring,通过寻找小串出现的位置,改变大串从小串出现的位置处重新寻找小串的位置,以此类推.第二种解法,直接用小串分割大串,分割出的字符串数组长度-1即是小串出现的次数,但是这时要考虑一种特殊情况,即小串出现在末尾处.这时候字符串数组的长度就是小串出现的次数.第三种利用正则表达式中Pa

JS小插件之2——cycle元素轮播

元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;"> 5 <title> cycle demo </titl

js小游戏——看你能坚持多久

点击另存用到的图片. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" > <head

一道SQL语句的面试题目

今天一个朋友发了一道题目给我,我把此题目贴出来,以便大伙看看,共同研究研究. 题目: 已知关系模式: 1.s (sno,sname) 学生关系.sno 为学号,sname 为姓名2.c (cno,cname,cteacher) 课程关系cno 为课程号,cname 为课程名,cteacher 为任课教师3.sc(sno,cno,scgrade) 选课关系.scgrade 为成绩要求实现如下5 个处理:1.找出没有选修过“李明”老师讲授课程的所有学生姓名2.列出有二门以上(含两门)不及格课程的学生

值得一做》一道类似于货车运输的题目(BZOJ3732)(easy+)

这是一道模板套模板的题目,只要会LCA和最小生成树就可以做,水题 直接先甩题目 Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000). 现在有 K个询问 (1 < = K < = 15,000). 每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值

写个js小工具自动生成博文目录

我们在写博客的时候,如果博文里面有目录,会给人结构清晰.一种一目了然的感觉,看目录就知道这篇博文要讲解的内容,并且点击目录标题就可以跳转到具体的内容,这样园友们在看博客的时候就可以很方便地浏览自己感兴趣的内容,但是遗憾的是博客园不支持博文目录的生成,好像也有园友给博客园提建议,希望能够像CSDN那样能够自动生成博文目录,但是不知道是什么原因,博客园一直都没有把这个功能加上去,既然没有,那我就自己做吧,研究了2天,总算是按照自己的设想做出来了,最终效果如下: 下面来介绍一下这个小工具的实现. 一.

四则运算小题目解析

小题目四则运算下面是源代码 #include <iostream> using namespace std; void main() {  int X0[1000],Y0[1000],Z0[1000],X1[1000],Y1[1000],Z1[1000],X2[1000],Y2[1000],Z2[1000],X3[1000],Y3[1000],Z3[1000],A[1000],a,b,c;  int i,j,A0,A1,A2,A3,B0,B1,B2,B3;  int number1,numbe

js一些题目

1.对象里面的key不区分出string var a={}; a[1]="a"; a["1"]=2; console.log(a); 2.扩展Array原型,编写一个去除数组重复项的方法 // 算法一,两层循环,性能差 Array.prototype.unique = function(){ var len = this.length, i; // 两两比较(数组长度大于1) while ( --len > 0 ) { i = len; while ( --i