返回顶部
首页 > 资讯 > 精选 >Javascript 的caller,callee,call,apply怎么使用
  • 155
分享到

Javascript 的caller,callee,call,apply怎么使用

2023-06-03 03:06:37 155人浏览 八月长安
摘要

本篇内容主要讲解“javascript 的caller,callee,call,apply怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript 的caller,callee

本篇内容主要讲解“javascript 的caller,callee,call,apply怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript 的caller,callee,call,apply怎么使用”吧!

1、caller

jscript参考中说明为:返回一个对函数的引用,该函数调用了当前函数。如何理解这句话, 先来举个简单的例子:
// caller demo {function callerDemo() {if (callerDemo.caller) {var a= callerDemo.caller.toString();alert(a);} else {alert("this is a top function");}}function handleCaller() {callerDemo();}
上面的例子,可以看出,它就是返回一个调用数据的引用。(指向请求调用的函数) 也由此可以看出,当在这样的情况下,

2、callee

JScript参考中的说明为:返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。

需要注意的是callee拥有length属性,这个在有的时候用于验证还是比较好的。

function calleeDemo() {alert(arguments.callee);}function calleeLengthDemo(arg1, arg2) {if (arguments.length==arguments.callee.length) {window.alert("验证形参和实参长度正确!");return;} else {alert("实参长度:" +arguments.length);alert("形参长度: " +arguments.callee.length);}}
从上面的例子可以看出,callee可以用来打在执行函数,也就是指向被调用的函数。上面的例子就说明calee可以打印其本身,当然还有其它的一些用途。而length属性中arguments.length是实参长度,arguments.callee.length是形参长度,由此可以判断调用时形参长度是否和实参长度一致。

3、call 和 apply

call方法JScript参考中的说明:调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]]),但是没有示例
apply方法JScript参考中的说明:应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,argArray]])
实际上这两个的作用几乎是相同的,要注意的地方是call(thisObj[,arg1[, arg2[,)中的arg参数可以是变量,而apply([thisObj[,argArray]])中的参数为数组集合。下面来看看call, apply的具体应用
// simple call demofunction simpleCallDemo(arg) {window.alert(arg);}function handleSPC(arg) {simpleCallDemo.call(this, arg);}// simple apply demofunction simpleApplyDemo(arg) {window.alert(arg);}function handleSPA(arg) {simpleApplyDemo.apply(this, arguments);}
从上面简单的例子可以看出,call和apply可以把当前的参数传递给另外一个函数的参数中,从而调用另一个函数的应用。有的时候这是一个很实用的方法,当然,用call或是apply(是参数或是数组),看实际情况而定了。
下面来看另一个应用
call和apply还有一个技巧在里面,就是用call和apply应用另一个函数(类)以后,当前的函数(类)就具备了另一个函数(类)的方法或者是属性,这也可以称之为“继承”。看下面示例。
// inheritfunction base() {this.member = "never-online";this.method = function() {window.alert(this.member);}}function extend() {base.call(this);window.alert(member);window.alert(this.method);}
上面的例子可以看出,通过call之后,extend可以继承到base的方法和属性。
再看一个apply的应用
// advanced apply demofunction adApplyDemo(x) {return ("this is never-online, BlueDestiny '" + x + "' demo");}function handleAdApplyDemo(obj, fname, before) {  var oldFunc = obj[fname];  obj[fname] = function() {    return oldFunc.apply(this, before(arguments));  };}function helloWordFunc(args) {  args[0] = "hello " + args[0];  return args;}function applyBefore() {alert(adApplyDemo("world"));}function applyAfter() {handleAdApplyDemo(this, "adApplyDemo", hellowordFunc);alert(adApplyDemo("world")); // Hello world!}
需要注意的是,要先点"原始的adApplyDemo('world')"按钮,如果先点"应用后的adApplyDemo('world')"按扭,会先应用了apply方法,这样原始的值将会被改变。或许有的朋友没有发现有什么特别的,我在这里指明一下,当点击左边的按扭时,只有"this is never-online, BlueDestiny 'world' demo", 当点击右边的按扭后,会现结果是"this is never-online, BlueDestiny 'hello world' demo",再点点左边的按扭,看看结果又会是什么呢?自己试试看:D,已经改写了函数adApplyDemo。这个例子则说明了call和apply的“真正”作用了。
到此,相信大家对“Javascript 的caller,callee,call,apply怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Javascript 的caller,callee,call,apply怎么使用

本文链接: https://www.lsjlt.com/news/232572.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Javascript 的caller,callee,call,apply怎么使用
    本篇内容主要讲解“Javascript 的caller,callee,call,apply怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript 的caller,callee...
    99+
    2023-06-03
  • js的arguments,callee和caller怎么使用
    arguments: 在 JavaScript 中,arguments 是一个类数组对象,它包含了当前函数被调用时传入的所有参数。...
    99+
    2024-04-02
  • 怎么使用Javascript中apply、call、bind
    本篇内容介绍了“怎么使用Javascript中apply、call、bind”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2024-04-02
  • JavaScript的call与apply怎么定义使用
    这篇文章主要介绍“JavaScript的call与apply怎么定义使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript的call与apply怎么定义使用”文章能帮助大家解决问题。...
    99+
    2023-06-30
  • JavaScript中bind、call、apply方法怎么使用
    这篇文章主要讲解了“JavaScript中bind、call、apply方法怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中bind、call、apply方法怎么...
    99+
    2023-06-30
  • 一文了解JavaScript中call/apply/bind的使用
    目录前言1. call1.1 语法1.2 流程图1.3 代码实现2. apply2.1 语法2.2 流程图2.3 代码实现3. bind3.1 语法3.2 流程图3.3 代码实现4....
    99+
    2024-04-02
  • Javascript实现call,bind,apply的代码怎么写
    这篇文章主要介绍了Javascript实现call,bind,apply的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Javascript实现call,bind,apply的代码怎么写文章都会有所收...
    99+
    2023-06-29
  • javascript怎么实现call、apply和bind方法
    本篇内容介绍了“javascript怎么实现call、apply和bind方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅...
    99+
    2024-04-02
  • 怎么使用javascript apply
    本篇内容主要讲解“怎么使用javascript apply”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用javascript apply”吧! ...
    99+
    2024-04-02
  • JS中call()、apply()和bind()函数怎么使用
    今天小编给大家分享一下JS中call()、apply()和bind()函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-04
  • 再谈JavaScript中bind、call、apply三个方法的区别与使用方式
    call的基本使用 var ary = [12, 23, 34]; ary.slice(); 以上两行简单的代码的执行过程为:ary这个实例通过原型链的查找机制找到Array.pro...
    99+
    2024-04-02
  • JavaScript的call()方法怎么用
    这篇文章主要讲解了“JavaScript的call()方法怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript的call()方法怎么用”...
    99+
    2024-04-02
  • JavaScript中的call()函数如何使用
    本篇内容介绍了“JavaScript中的call()函数如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!this指向指向window:...
    99+
    2023-07-05
  • 使用JS简单实现apply、call和bind方法的实例代码
    目录1.方法介绍2.apply、call和bind方法的实现2.1.apply的实现2.2.call的实现2.3.bind的实现总结1.方法介绍 apply、call和bind都是系...
    99+
    2024-04-02
  • Pandas的map,apply,applymap怎么使用
    这篇文章主要介绍了Pandas的map,apply,applymap怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Pandas的map,apply,applymap怎么使用文章都会有所收获,下面我们一起...
    99+
    2023-06-29
  • 怎么使用pandas apply()函数
    这篇文章主要讲解了“怎么使用pandas apply()函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用pandas apply()函数”吧!理解 pandas 的函数,要对函数式...
    99+
    2023-06-25
  • SQL Server怎么使用CROSS APPLY与OUTER APPLY实现连接查询
    本篇内容主要讲解“SQL Server怎么使用CROSS APPLY与OUTER APPLY实现连接查询”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就...
    99+
    2024-04-02
  • python的apply(),map(),applymap()怎么用
    这篇文章主要讲解了“python的apply(),map(),applymap()怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python的apply(),map(),applyma...
    99+
    2023-06-29
  • 一文带你快速理解JavaScript中call()函数的使用
    目录this指向Call()指向理解call()函数前, 首先要了解一下this的指向问题 this指向 1.指向window: var name = '小红' function ...
    99+
    2023-03-23
    JavaScript call()使用 JavaScript call() JavaScript call
  • mybatis QueryWrapper的apply、last、select怎么用
    这篇“mybatis QueryWrapper的apply、last、select怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作