编程语言中,调用,应用的用法分析

  介绍

小编给大家分享一下编程语言中,调用,应用的用法分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>前言+思考题

记得当时找实习的时候,总是会在简历上加上一句——熟悉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();,//,老王

编程语言中,调用,应用的用法分析