js 异步操作回调函数如何控制执行顺序
需求:
fun A() { asyn(parm1, parm2, onsuccess(){ }) ;}
fun B() {asyn(paem1, parm2, onsuccess(){}) ;}
函数B要求执行在函数A之后
异步执行
如果直接使用
A();
B();
是不能够满足执行条件的。
考虑将B作为回调函数传递给A,然后A再执行的onsucess中执行B函数
A(B);
即可实现功能需求。
js是单线程的.
1、调用函数时,如果参数多于定义时的个数,则多余的参数将会被忽略,如果少于定义时的个数则缺失的参数数会被自动赋予undefined值。
2、如果是用function语句声明的函数定义则不可以出现在循环或条件语句中,但是如果是用函数直接量方法的函数定义则可以出现在任何js表达式中。
3、arguments对象
函数的arguments对象就像一个数组,里面保存着函数调用时的实际参数,可以用arguments[0]、arguments[1]、arguments[2]…等来引用这些参数,即使这些参数在定义函数时是没有的。但arguments并非真正的数组对象。
function a(x,y){
arguments[0] //表示第一个参数x
arguments[1] //表示第一个参数y
arguments[2] //表示第三个参数,前提是在调用函数时传入了三个参数
…
arguments.length //表示实际传入参数的个数
arguments.callee(x,y) //调用自身 }
arguments对象具有length属性,表示的是函数调用时实际传入的参数的个数。
arguments对象还具有callee属性,用来引用当前正在执行的函数,这个在匿名函数中尤其有用。
4、函数的length属性(没错,函数也是具有length属性的)
与arguments.length不同,函数的length属性表示的是在定义函数时的形参个数,而不是函数调用时的实际参数个数。可以用arguments.callee.length来调用函数的length属性。
相关推荐
-
Javascript基于AJAX回调函数传递参数实例分析
本文实例讲述了Javascript基于AJAX回调函数传递参数的方法.分享给大家供大家参考,具体如下: 前面介绍了<javascript实现html页面之间参数传递的四种方法>,这里针对ajax参数传递做一分析. 在Javascript 中,特别是在AJAX中,回调函数常常是一个函数名,没有地方放入参数,如下面的AJAX代码,在成功后将调用回调函数callback,但callback是有参数的,如何把参数传进来呢? var callback = function(p1){ //do somet
-
javascript 基础篇3 类,回调函数,内置对象,事件处理
复制代码 代码如下: function 类名(参数表){ this.属性; ...... this.函数; } 这样,函数和数据成员都是用"this."来实现. 我们自己定义一个简单类student好了,然后再去构造它,并且实现一个输出函数. 复制代码 代码如下: <script LANGUAGE="JavaScript"> <!-- function student(a,b){ this.name = a; this.age=b; this.ou
-
Javascript中的回调函数和匿名函数的回调示例介绍
复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 匿名函数自调的意义: 1.营造了一个封闭的空间 2.防止变量冲突 3.有选择性的对外开发(第三方框架都是对js这样封装
-
js中回调函数的学习笔记
回调函数是什么在学习之前还真不知道js回调函数怎么使用及作用了,下面本文章把我在学习回调函数例子给各位同学介绍一下吧,有需了解的同学不防进入参考. 回调函数原理: 我现在出发,到了通知你" 这是一个异步的流程,"我出发"这个过程中(函数执行),"你"可以去做任何事,"到了"(函数执行完毕)"通知你"(回调)进行之后的流程 例子 1.基本方法 <script language="javascript&q
-
js的回调函数详解
现在做native App 和Web App是主流,也就是说现在各种基于浏览器的web app框架也会越来越火爆了,做js的也越来越有前途.我也决定从后端开发渐渐向前端开发和手机端开发靠拢,废话不说了,我们来切入正题"js的回调函数"相关的东西. 说起回调函数,好多人虽然知道意思,但是还是一知半解.至于怎么用,还是有点糊涂.网上的一些相关的也没有详细的说一下是怎么回事,说的比较片面.下面我只是说说个人的一点理解,大牛勿喷.我们来看一下一个粗略的一个定义"函数a有一个参数,这
-
ajax JSONP请求处理回调函数jsonpCallback区分大小写
使用ajax进行 JSONP跨域请求,因为被请求的对方的回调函数名称是无法修改.而这边页面中会出现多个不同JSONP请求,但他们的回调函数名称都是同一个,_Callback.想到设置AJAX 的JSONP参数.但是发现根本不起作用.最后偶然发现 jsonpcallback是区分大小写的.必须是 jsonpCallback 而不是jsonpcallback 复制代码 代码如下: $.ajax({ url: 'http://www.zbphp.com/j.php?act=json&tm=', dat
-
javascript AOP 实现ajax回调函数使用比较方便
复制代码 代码如下: function actsAsDecorator(object) { object.setupDecoratorFor = function(method) { if (! ('original_' + method in object) ) { object['original_' + method] = object[method]; object['before_' + method] = [ ]; object['after_' + method] = [ ]; o
-
关于javascript 回调函数中变量作用域的讨论
1.背景 Javascript中的回调函数,相信大家都不陌生,最明显的例子是做Ajax请求时,提供的回调函数, 实际上DOM节点的事件处理方法(onclick,ondblclick等)也是回调函数. 在使用DWR的时候,回调函数可以作为第一个或者最后一个参数出现,如: JScript code function callBack(result){ } myDwrService.doSomething(param1,param2,callBack);//DWR的推荐方式 //或者 myDwrSer
-
JavaScript 动态添加脚本,并触发回调函数的实现代码
function loadScript(url, callback){ var script = document.createElement("script") script.type = "text/javascript"; if (script.readyState){ //IE script.onreadystatechange = function(){ if (script.readyState == "loaded" || scri
-
javascript的回调函数应用示例
回调函数概念:回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数. JS Api 里这样解释:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed. 使用回调函数的原因:可以把调用者与被调用者
-
javascript回调函数的概念理解与用法分析
本文实例讲述了javascript回调函数的概念理解与用法.分享给大家供大家参考,具体如下: 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为函数实际上是一种对象,它可以存储在变量中,通过参数传递给另一个函数,在函数内部创建,从函数中返回结果值",因为函数是内置对象,我们可以将它作为参数传递给另一个函数,到函数中执行,甚至执行后将它返回,它一直被"专业的程序员"
随机推荐
- 网页视频播放器程序代码(通用代码)
- java String 类的一些理解 关于==、equals、null
- 基于对象合并功能的实现示例
- 如何将php数组或者对象传递给javascript
- PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
- JSP由浅入深(1)—— 熟悉JSP服务器
- php不用GD库生成当前时间的PNG格式图象的程序第1/2页
- 试用Kesion CMS 4.0商城版 商业版
- js中for in的用法示例解析
- Android自定义控件实现万能的对话框
- Tensorflow环境搭建的方法步骤
- Python中利用aiohttp制作异步爬虫及简单应用
- java递归与非递归实现扫描文件夹下所有文件
- Vue项目从webpack3.x升级webpack4不完全指南
- 详解Python3除法之真除法、截断除法和下取整对比
- python实现在函数图像上添加文字和标注的方法
- C#中overrid和new修饰符有什么不同
- pygame实现俄罗斯方块游戏(基础篇1)
- 嵌入式项目使用C语言结构体位段特性实现断言宏校验数据范围有效性的方法
- ASP.NET Core中快速构建PDF文档的步骤分享第1/2页