小编给大家分享一下编程语言中,调用,应用的用法分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
<强>前言+思考题强>
记得当时找实习的时候,总是会在简历上加上一句——熟悉Js,例如这指向,调用,应用等…
而每次投递简历时我都会经历如下步骤
- <李>
面试前,去问度娘,这指向可以分为哪几种啊~,调用和应用的区别是什么?底气由猛的0%涨到50%了;
李> <李>面试中,面试官随便扔上来几道题,我都可以“坚定的“给出答案,结果总是不尽人意…
李> <李>面试后,我会羞愧的删除掉简历上的这一条。而再之后投递简历时我又再次加上了这一条…
李>思考题
下面几道题是我在网上搜索出来的热度较高的问题,如果大佬们可以轻松的回答上,并有清晰的思路,不妨直接点个赞吧(毕竟也消耗了不少脑细胞),如果大佬们能在评论处指点一二,就更好了! ! !
<强>填空题:强>
- <李>
执行Javascript中的【】<代码> 代码>函数会创建一个新函数,新函数与被调函数具有相同的函数体,当目标函数被调用时这个值指向第一个参数。
李><强>问答题:强>
- <李>
请你谈一下改变函数内部这指针的指向函数有哪几种,他们的区别是什么?
李> <李>这样的指向可以分为哪几种?
李><强>代码分析题:强>
var name =, & # 39;窗口# 39;var person1 =, { ,,名字:& # 39;person1& # 39; ,,show1: function (), { ,,,console.log (this.name) ,,}, show2才能:,(),=祝辞,console.log (this.name), 展才能:function (), { ,,,return function (), { ,,,,,console.log (this.name) ,,,} ,,}, ,,show4: function (), { ,,,return (),=祝辞,console.log (this.name) }}才能var person2 =,{,名字:& # 39;person2& # 39;,} person1.show1 () person1.show1.call (person2) person1.show2 () person1.show2.call (person2) person1.show3 () () person1.show3()打电话给(person2) person1.show3.call (person2) () person1.show4 () () person1.show4()打电话给(person2) person1.show4.call (person2) ()
<强>一,这的指向强>
百度,谷歌上输入”的指向“关键字,大几千条文章肯定是有的,总不至于为了全方面,无死角的掌握它就要将所有的文章都看一遍吧?所以不如梳理出一个稳固的框架,顺着我们的思路来填充它。
思维导图
本节精华:
- <李>
这总是(非严格模式下)指向一个对象,而具体指向哪个对象是在运行时基于函数的<代码>执行环境代码>动态绑定的,而非函数被声明时的环境;
李> <李>除了不常用的与和eval的情况,具体到实际应用中,这指向大概可以分为四种:
李>- <李>
作为对象的方法调用;
李> <李>作为普通函数调用;
李> <李>构造器调用;
李> <李>调用或申请调用;
李> <李>箭头函数中,这指向函数上层作用域的;
李><强>构造器强>和<强>普通函数强>的区别在于<代码>被调用的方式> 代码;
李> <李>,叫(B)=比;可以理解成在B的作用域内调用了一方法;
李>分析
<强> 1,作为对象的方法调用强>
当函数作为对象的方法被调用时,<代码>这指向该对象代码>
var obj =, { ,,,,,& # 39;光# 39; ,,,getName:,函数(){ ,,,,,,,console.log(却;能够===,obj); ,,,,,,,console.log (this.a); ,,,}};obj.getName ();,//, true 光
<强> 2,作为普通函数调用强>
当函数不作为对象的属性被调用,而是以普通函数的方式,这总是指向全局对象(在浏览器中,通常是窗口对象)
window.name =, & # 39;光# 39;;var getName =,函数(){ ,,,console.log (this.name);}; getName();,//,光
或者下面这段迷惑性的代码:
window.name =, & # 39;老王& # 39;var obj =, { ,,,的名字:,& # 39;光# 39; ,,,getName:,函数(){ ,,,,,,,console.log (this.name); ,,,}};var getNew =, obj.getName; getNew();,//,老王编程语言中,调用,应用的用法分析