首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在这个Javascript语句中执行的.call()函数是什么?

这个Javascript语句中执行的.call()函数是JavaScript对象的方法调用方式之一。在JavaScript中,如果要在对象上调用一个方法,可以通过.对象名的方式调用,例如obj.method(),但是还有一种方式可以更灵活的使用对象的方法,那就是通过.call()函数来调用,例如obj.method.call(this, arg1, arg2, ...)当.call()函数被调用时,它会接收三个参数,第一个参数是对象本身,第二个参数是传递给函数的参数,可以是多个参数,用逗号隔开,第三个参数是可选的,可以指定一个上下文参数this,在调用.call()函数时,可以把对象作为this参数传递进去,从而可以操作对象的属性和方法,并且.call()函数可以传参,可以同时传递多个参数给函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript this理解

JavaScript编程中 , this关键字总是让初学者感到迷惑 , this到底是什么呢? 1....关于this JavaScript有别于其他编程语言 , 它this总是指向一个对象 , 而具体指向那个对象是在运行时基于函数执行环境动态绑定 , 而不是函数声明时环境。...作为普通函数调用 当函数不作为对象属性调用时 , 也就是我们常说普通函数方式 , 此时this总是指向全局对象 , 客户端JavaScript里 , 这个全局对象是指window对象....可以动态地改变传入函数this; call 和 apply 方法能很好地体现JavaScript 函数方特性 , JavaScript 中 , 几乎每一次编写函数式语言风格 , 都离不开call...: 现代浏览器中执行过后发现 , 代码会抛出一个异常 。

48710
  • Js面试题__附答案

    字符串语句中可以通过第一行末尾使用反斜杠“\”来完成 例:document.write("This is \a program"); 如果不是字符串语句中更改为新行,那么javaScript会忽略行中断点...setInterval(function,delay)函数用于提到延迟中重复执行给定功能,只有取消时才停止。 clearInterval(id)函数指示定时器停止。...Run time errors:由于HTML语言中滥用命令而导致错误。 Logical Errors:这是由于具有不同操作函数执行了错误逻辑而发生错误。...被声明为没有任何命名标识符函数被称为匿名函数。一般来说,匿名函数声明后无法访问。 匿名函数声明: ? 43、.call()和.apply()之间有什么区别?...函数.call()和.apply()使用上非常相似,只是有一点区别。当程序员知道函数参数编号时,使用.call(),因为它们必须在调用语句中被提及为参数。

    8.8K30

    《你不知道JavaScript》 (上) 阅读摘要

    try/catch 结构 catch 分句中具有块级作用域。 第四章 提升 编译器 函数声明会被提升,而函数表达式不会被提升。...) { console.log(1) } function foo() { console.log(2) } 第二部分 this和对象原型 第一章 关于this this到底是什么 this 实际上是函数被调用时发生绑定...当一个函数被调用时,会创建一个执行上下文,它包含函数在哪里被调用(调用栈)、函数调用方式、传入参数等信息,this 就是这个记录一个属性,会在函数执行过程中用到。...函数是否通过 call、apply 或者硬绑定调用,如果是的话,this 绑定是指定对象;var bar = foo.call(obj) 隐式绑定: 函数是否某个上下文对象中调用,如果是的话...() 例外 被忽略情况: 比如把 null、undefined 作为 this 绑定对象传入 call、apply、bind ,那么这些值调用时会被忽略,实际应用是默认绑定; 箭头函数

    53220

    一个简单例子让你很轻松地明白JavaScript中apply、call、bind三者用法及区别

    JavaScript中apply、call、bind三者用法及区别 引言 正文 一、apply、call、bind共同用法 二、 apply 三、 call 四、 bind 五、其他应用场景 六、...总结 结束 引言 这是我第一篇前端面试题文章,也是用来帮助自己巩固复习知识, 之后希望拿到自己满意offer,这第一篇讲就是一道常见面试题,关于JavaScript中apply、call、bind...六、总结 apply、call、bind 三者都是可以改变函数this指向 apply 和 call 都是改变函数this指向,并传入参数后立即调用执行函数 bind 是改变函数this指向,并传入参数后返回一个新函数...,不会立即调用执行 apply 传入参数是数组形式call 传入参数是按顺序逐个传入并以逗号隔开; bind 传入参数既可以是数组形式,也可以是按顺序逐个传入。...结束 apply、call、bind三者用法及区别是经常考到一道面试题,希望对大家有所帮助。

    23910

    【前端面试题】03—200+道常见JavaScript基础面试题上(附答案)

    当声明了一个变量并将个引用类型赋值给该变量时候,这个引用次数就加1.如果该变量值变成了另外一个,则这个引用次数减1.当这个引用次数变为0时候,说明没有变量使用,这个值没法被访问。...作用都是函数执行时候,动态改变函数运行环境(执行上下文)。 call和 apply第一个参数都是改变运行环境对象。 区别如下。... JavaScript中,执行环境中加载数据时,解析器对函数声明和函数表达式并非是一视同仁。解析器会首先读取函数声明,并使它在执行任何代码之前可用(可以访问)。...31、 JavaScript中有一个函数执行直接对象查找时,它始终不会查找原型,这个函数是什么? hasOwnProperty。 32、 JavaScript中如何使用DOM?...如果不是字符串语句中更改为新行,那么 JavaScript会忽略行中断点下面的代码是完美的,但并不建议这样做,因为阻碍了调试。

    4.5K10

    匿名函数闭包模仿块级作用域,轻松解决开发中两大难题

    大家都知道ES6之前,JavaScript是没有块级作用域,但其实我们是可以通过匿名函数闭包来模仿实现一个块级作用域,并且可以依靠这样操作来解决平时开发中两大难题。...(1)匿名函数自调用理解 (2)匿名函数自调用前面要加一个分号; 六、结束 一、引言 首先,还没有了解过作用域链和闭包小伙伴可以点击下面三篇文章进行学习一下,方便对本文内容理解。...,清除无用变量,释放多余内存,展现更好性能 二、什么是块级作用域 例如Java 、C++等语言中,一个 for循环语句中定义了一个变量 i ,那么该变量就只属于这个 for循环语句块中,即循环结束后...这个 for循环语句形成一个作用域就叫做块级作用域。 了解过作用域链就能知道,JavaScript中能形成作用域就只有函数以及全局。...六、结束 希望这篇文章对你们有所帮助 我是Lpyexplore,带你python爬虫过程中学习web前端,创作不易,喜欢加个关注,点个收藏,给个赞~

    69920

    深入理解 JavaScript作用域和上下文

    这个原则也适用于编程语言设计,大多数编程语言中被称为作用域,包括我们接下来要研究 JavaScript 。...块语句中定义变量将保留在它们已经存在作用域中。...关键字支持局部(本地)作用域块语句中声明。...正如我刚才所说,当 JavaScript 解释器开始执行代码时,上下文(作用域)默认设置为全局。这个全局上下文附加到执行期上下文中,实际上是启动执行期上下文第一个上下文。...该日志语句包裹在一个函数中,该 call 函数包含在调用函数括号中。将相应列表项传递给调用函数,以便控制台语句中 this 关键字记录正确对象 innerHTML 。

    1.2K10

    前端工程师自检清单73答

    JavaScript 对象底层数据结构是什么? 对象数据被存储于堆中 (如对象、数组、函数等,它们是通过拷贝和new出来)。...理解 JavaScript 执行上下文栈,可以应用堆栈信息快速定位问题 执行上下文 就是当前 JavaScript 代码被解析和执行时所在环境抽象概念, JavaScript 中运行任何代码都是执行上下文中运行...执行上下文总共有三种类型:全局执行上下文, 函数执行上下文, Eval 函数执行上下文 执行栈,在其他编程语言中也被叫做调用栈,具有 LIFO(后进先出)结构,用于存储代码执行期间创建所有执行上下文...由于Javascript语言中,只有函数内部函数才能读取局部变量,因此可以把闭包简单理解成"定义一个函数内部函数"。 所以,本质上,闭包就是将函数内部和函数外部连接起来一座桥梁。...为何 try 里面放 return,finally 还会执行,理解其内部机制 try 语句中执行 return 语句时,要返回结果已经准备好了,就在此时,程序转到 finally 执行了。

    1.9K21

    12 - JavaScript作用域​

    原文地址:https://dev.to/bhagatparwinder/scope-in-javascript-3jim JavaScript作用域规定了一个变量或函数可用范围。...根据变量或函数声明位置它们或许只能在个别 JavaScript 代码块中可用在其他地方则不行。我们 JavaScript 中会接触到三种作用域。...在这个例子中,当我们 sayLastName 中打印 first 时,JS 引擎首先会在函数作用域中查找,之后全局作用域中查找。若任何作用域中都没有找到,则会报一个引用错误。...let 使 attribute 变量属于块级作用域,此时它被限制 if 语句中。当我们尝试 if 语句外返回它时,attribute 是找不到。...因为 sayMyName 是声明它作用域下执行

    56730

    金九银十: 50 个JS 必须懂面试题为你助力

    JavaScript是一种OOP脚本语言, 代码只浏览器上运行, JS代码都是文本形式。...方法中,这指的是所有者对象,而在函数中,这指的是全局对象。 问题14:什么是回调 回调函数是作为参数或选项传递给某个方法普通JS函数。它是一个函数另一个函数完成执行执行,因此称为回调。...因此,if语句中执行typeof f返回undefined,因为if语句代码在运行时执行,而if条件中语句在运行时计算。...问题43:call 和 apply有什么区别 call和apply可以用来重新定义函数执行环境,也就是this指向;call和apply都是为了改变某个函数运行时context,即上下文而存在,...咱们应该小心使用这种清空数组方法,因为如果你从另一个变量引用了这个数组,那么原始引用数组将保持不变。

    6.6K31

    解读闭包,这次从ECMAScript词法环境,执行上下文说起

    我看了这些文章之后,一个很大感受是:如果让我给别人讲解闭包这个知识点,我能说得清楚吗?我依据是什么?可信度有多大?我觉得我是怀疑我自己,否定三连估计是妥了。 ?...PS:evaluated是evaluate过去分词,从字面上解释就是评估,而评估代码我觉得不是很好理解。我个人理解是,评估代码代表着JS引擎解释执行javascript代码。...因为如果catch是一个函数,显然这里打印arguments就不应该是test函数arguments。既然catch不是一个函数,那么凭什么可以有一个仅限catch子句中被访问错误对象e?...执行上下文 看了这些我们还是没有一个全盘把握去解读闭包,不如接着看看执行上下文。我之前理解中,上下文应该是一个环境,包含了代码可访问变量。当然,这显然还不够全面。那么上下文到底是什么?...堆栈中最顶层执行上下文就是正在运行执行上下文。 很多人对可执行代码可能又有疑惑了,javascript不都是可执行代码吗?

    1.2K40

    2020回顾-个人web分享JavaScript面试题附加回答

    相反,如果该变量值变成了另外一个,则这个引用次数减一。(当这个引用次数变为0时候,说明没有变量使用,则这个值没法被访问。)...JavaScriptcallee和caller作用是什么 caller返回一个关于函数引用,该函数调用了当前函数 callee返回正在执行函数,也就是指定function对象正文 caller...JavaScript中,push方法作用是什么 push方法是将一个或多个元素添加或附加到数组末尾。 57....JavaScript继承是如何工作 子构造函数中,将父类构造函数子类作用域中执行 子类原型中,复制父类构造函数原型上属性方法 JavaScript是如何实现继承(六种方式)...:子类型构造函数内部调用超类构造函数,通过使用call()和apply()方法可以新创建对象上执行构造函数

    1.6K70

    50 个JS 必须懂面试题为你助力金九银十

    方法中,这指的是所有者对象,而在函数中,这指的是全局对象。 问题14:什么是回调 回调函数是作为参数或选项传递给某个方法普通JS函数。它是一个函数另一个函数完成执行执行,因此称为回调。...可以通过文件,程序或函数开头添加“use strict”来启用严格模式 问题41:JS 中 prompt 框是什么 提示框是允许用户通过提供文本框输入输入框。...因此,if语句中执行typeof f返回undefined,因为if语句代码在运行时执行,而if条件中语句在运行时计算。...问题43:call 和 apply有什么区别 call和apply可以用来重新定义函数执行环境,也就是this指向;call和apply都是为了改变某个函数运行时context,即上下文而存在,...咱们应该小心使用这种清空数组方法,因为如果你从另一个变量引用了这个数组,那么原始引用数组将保持不变。

    4.5K30

    JavaScript 严格模式

    严格模式对正常 JavaScript 语义做了一些更改: 严格模式通过抛出错误来消除了一些原有静默错误; 严格模式修复了一些导致 JavaScript引擎难以执行优化缺陷:有时候,相同代码,严格模式可以比非严格模式下运行得更快...或者将严格模式定义函数中,这样或许能避免模式冲突。 严格模式中变化 首先看几个例子,不使用严格模式下运行代码是什么结果,而使用了严格模式又是什么结果。 1....只是因为正常模式下,最后一个重名参数名会掩盖之前重名参数。因此这个函数其实只有一个形参 a,4 才是它真正实参。 严格模式下这是会报错。...严格模式下函数形参是只读,修改了形参值并不对报错,当然值还是原来值,并没有被你修改掉。如果你真的有这个需求,可以声明一个变量,然后将形参赋给改变量。...严格模式下不能在循环语句以及条件语句中声明函数; 6. eval 函数 eval 函数可以将字符串解析成 js 代码然后执行,因此 eval 很强大,严格模式对 eval 函数做了一些限制。

    95710

    Javascript中作用域理解?

    JavaScript作用域 JavaScript语言中有两种类型作用域: 全局作用域 局部作用域 函数内部定义变量存在于局部作用域,而在函数外部定义变量存在于全局作用域。...关键词支持块语句中声明局部作用域。...正如我刚才所说,当 JavaScript 解释器开始执行代码时,上下文(作用域)默认设置为全局。这个全局上下文附加到执行期上下文中,实际上是启动执行期上下文第一个上下文。...简单说就是改变函数执行上下文。 .call()和.apply()之间区别在于,.call()中,其余参数作为以逗号分隔列表,而.apply()则允许您在数组中传递参数。...该日志语句包裹在一个函数中,该 call() 函数包含在调用函数括号中。将相应列表项传递给调用函数,以便控制台语句中 this 关键字记录正确对象 innerHTML 。

    90630
    领券