闭包面试回答_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);}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java实现MD5加密的方式

    Java实现MD5加密的方式  MD5加密是一种常见的加密方式,我们经常用在保存用户密码和关键信息上。那么它到底有什么,又什么好处呢,会被这么广泛的运用在应用开发中。  1、什么是MD5  MD5加密全程是Message-DigestAlgoorithm5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位运算,最终获取加密后的MD5字符串。  例如我们要加密一篇文章,那么我们会随机从每段话或者每行中获取…

  • Socat虚拟pty

    命令:socatptypty问题:从pty1到pty2的数据,也会被pty1所接收。

  • pyttsx3 快速上手之:语音合成播报

    pyttsx3 快速上手之:语音合成播报Pythonpyttsx3使用之:语音播报pyttsx3是python中最常用的文字转语音库,使用方便,功能较为完整首先安装pyttsx3lib:pipinstallpyttsx3然后封装下API,实现为speaker.py:importpyttsx3global__speak_engine__speak_engine=Nonedefsay(content): global__speak_engine ifnot__speak_engine:

  • deepfacelab第七步换脸失败_CUBASE AI

    deepfacelab第七步换脸失败_CUBASE AI首先需要选择合适的DeepFaceLab下载(https://www.deepfacelabs.com/list-5-1.html),然后安装相应的显卡驱动,如果已经准备好这些工作,那么恭喜你,终于开

  • BOOL ModifyStyleEx( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 );[通俗易懂]

    BOOL ModifyStyleEx( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 );[通俗易懂]BOOLModifyStyleEx(DWORDdwRemove,DWORDdwAdd,UINTnFlags=0);

  • 从零开始学Android_数学从零开始要学多久

    从零开始学Android_数学从零开始要学多久1环境搭建如果可以翻墙,环境搭建不是什么大问题,如果不能翻墙,则搭建环境比较困难。首先,我们根据网上的教程安装JDK。然后安装Androidstudio,最后进行一些配置,具体可以参考如下链接:https://jingyan.baidu.com/article/36d6ed1f9031bc1bcf4883f7.html。如果是国内环境,需要配置相关的国内镜像和仓库。有条件的话还是选择VPN的方…

发表回复

您的电子邮箱地址不会被公开。

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