闭包面试回答_ajax面试题

闭包面试回答_ajax面试题写在前面:在学习了闭包之后,试着做做这些题。其实是一种很棒地检验自己学习成果的手段。我当时反反复复,学了但好像又没完全学,遇到题还是一头雾水,到现在可以捋得很清楚也经历了蛮久的。而且从this,执行上下文,作用域一直走过来,这些题目涉及的内容也相对全面,加油喽。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

??:写在前面:在学习了闭包之后,试着做做这些题。其实是一种很棒地检验自己学习成果的手段。我当时反反复复,学了但好像又没完全学,遇到题还是一头雾水,到现在可以捋得很清楚也经历了蛮久的。而且从this,执行上下文,作用域一直走过来,这些题目涉及的内容也相对全面,加油喽。?? 

​​​​​​​?【JS基础整理—No.06】闭包_Chailo的博客-CSDN博客

//? 闭包面试题1
function show(){
	f = function fn(){
		console.log(x);
	}
	var x=20;
	f();
}
show();	//20

//? 闭包面试题2
var name='window'
var object={
    name:'object',
    getName:function(){
        return function(){
            return this.name
        }
    }
}
console.log(object.getName()());	//window
// fn1=object.getName();	即fn1=getName()的返回值
// fn1=function(){return this.name}
// 输出 fn1()				相当于 函数自调用

//? 闭包面试题3
var name='window'
var object={
    name:'object'
    getName:function(){
        var that=this				//关键点
        return function(){
            return that.name
        }
    }
}
console.log(object.getName(()));	//object

//? 闭包面试题4
functiom fun(){
    return console.log(1);		//console.log(1)也是一个函数
}
console.log(fun());				//1 undefined

最后这俩题当时绕了我好一阵

//? 闭包面试题终极一
function fun(n ,o){
    console.log(o)
    return{
        fun:function(m){
        	return fun(m,n)
    	}
    }
}
var a= fun(0)	//打印o Undefined 给a返回一个对象 里面有闭包{n:0}
a.fun(1)		//打印o 0  调用a的属性fun m=1,去上层作用域找到 n=0 fun(1,0) 打印o 0 
a.fun(2)		//打印o 0  调用a的属性fun m=2,去上层作用域找到 n=0 fun(2,0) 打印o 0
a.fun(3)		//打印o 0  调用a的属性fun m=3,去上层作用域找到 n=0 fun(3,0) 打印o 0
//Undefined 0 0 0
//----------
var b=fun(0).fun(1).fun(2).fun(3)	//	Undefined 0 1 2
//打印o 0  调用a的属性fun m=1,去上层作用域找到 n=0 fun(1,0) 打印o 0 此时 n=m=1
//fun(0).fun(1). fun(2) n=1 fun(2,1) 打印o 1
//...
//----------
var c=fun(0).fun(1)		//Undefined 0
c.fun(2)		//1
c.fun(3)		//1 
//? 闭包面试题终极
function Foo(){
    getName=function(){alert(1);}
    return this
}
Foo.getName=function(){alert(2);}
Foo.prototype.getName=function(){alert(3);}
var getName=function(){alert(4);}
function getName(){alert(5);}
//请写出输出结果
Foo.getName();		//2
getName();			//4		出现同名的变量和函数,预解析完getName指向函数;代码执行过程中给变量赋值
Foo().getName();	//1		
//对象.getName() Foo()自调用,返回对象this,this-->window 即window.getName();但是函数调用会把全局的getName()覆盖掉 
getName();			//1		全局getName被覆盖
new Foo.getName();	//2		new关键字的作用:执行函数;找最近的()
new Foo().getName();//3		var f=new Foo(); f.getName(); Foo的实例f,f现在自身找,找不到去原型找。
new new Foo().getName();//3	var f=new Foo(); new f.getName(); new function(){alert(3);}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179739.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gradle安装教程_安卓gradle安装和使用配置

    gradle安装教程_安卓gradle安装和使用配置1.访问Gradle官网,找到下载页面。http://services.gradle.org/distributions/。gradle-x.x-bin.zip是需要下载的安装发布版。2.解压3.

    2022年8月5日
    18
  • int8与int16_将int型转为char型

    int8与int16_将int型转为char型工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。int_t同类int_t为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是一种新的数据类型。因为跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以最有效的维护代码。…

    2022年8月15日
    6
  • Swiper滑动Html5手机浏览器自适应

    Swiper滑动Html5手机浏览器自适应

    2022年1月30日
    50
  • idea2021.8.4激活码(JetBrains全家桶)

    (idea2021.8.4激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html9071407CR5-eyJsaWN…

    2022年3月22日
    56
  • idea免费激活码2021(JetBrains全家桶)[通俗易懂]

    (idea免费激活码2021)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZP…

    2022年3月20日
    53
  • CSS中的em运用详解,1em等于多少像素?

    今天要看完它:使用CSS也好久了,但一直都是在使用“px”来设置Web元素的相关属性,未敢使用“em”。主要原因是,对其并不什么了解,只知道一点概念性的东西,前段时间在项目中要求使用“em”作为单位设置元素,所以从头对“em”学习了一回。稍为有一点理解,今天特意整理了一份博文与大家一起分享,希望对童子们有些许的帮助。这篇教程将引导大家如何使用“em”来创建一个基本的弹性布局,从而学习其如何计算?又

    2022年4月4日
    76

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号