重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在高级语言层出不穷的年代, 各个语言都号称有着一切皆为对象的自豪说法, 而 js 作为一门脚本语言却相对于java等传统面向对象语言有很大的不同之处, 除了 js 诡异的继承体系之外, 最令人着迷的一个特性就是回调函数, 当然也有很多人对他诟病, 笔者认为 回调函数 和 异步 是js语言特性的两大最为突出的店, 当然正如所有优点需要满足自我的需求, 这个世界没有银弹, 比如大量的使用回调函数将会使你的代码冗余, 错乱影响代码人的视觉与思维体验.
成都创新互联公司专业为企业提供商水网站建设、商水做网站、商水网站设计、商水网站制作等企业网站建设、网页设计与制作、商水企业网站模板建站服务,十余年商水做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
本文是自己对学习回调函数的的体会, 难免不完善甚至错误, 原谅我的无知, 我愿虚心学习, 完善自己.
javascript最独特的就是 函数 作为一等公民, 我更愿意将 js 称为一切皆为 变量 的一门高级语言, 函数也是一种变量可以成为其他函数的参数, 我们喜欢在js中称之为回调函数, 另外js中的匿名函数可以作为函数参数使得回调函数的写法如鱼得水.
ps. 回调函数与 c 语言中的函数指针类似---指针指针指针!!!重要的事情说三遍
先来看一下回调函数的定义
In computer programming, a callback is a piece of executable code that is passed as an argument to other code, which is expected to call back (execute) the argument at some convenient time
回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在需要的时候方便调用这段(回调函数)代码。
function addSqua(num1, num2, callback){ var sum = num1 + num2; return callback(sum); } function squa(num){ return num*num; } let num = addSqua(1, 2, squa); console.log(num); //=>9
匿名回调函数
将匿名函数直接作为函数参数传递给函数, 这也是我们编程一般采用的
function addSqua(num1, num2, callback){ var sum = num1 + num2; return callback(sum); } let num = addSqua(1, 2, function squa(num){ return num*num; }); console.log(num); //=9
模仿数组中的every方法
在Array.prototype中添加类似与every一样的方法
Array.prototype.myEvery = function (callback) { if (typeof callback === 'function') { for (let i = 0; i < this.length; i++) { if (callback(this[i])) { return false; } } return true; } return true; } let op = [3, 6, 'every', 9,'each']; op.myEvery(function (value) { console.log(value); }) // 3 // 6 // 'every' // 9 // 'each'
回调函数的优点和使用场景是个闭包
回调函数是闭包的简单使用,也就是说它能访问到其外层定义的变量。
js回调函数的伟大之处是其他传统语言所没有的, 它可以实现业务逻辑分离, 相当于暴露给外界一个接口, 这一点像极了前后端分离架构中的 API 接口设计理念
这个世界没有 '银弹' , 没有能够解决所有事情的一种方案, 由于js为异步而生, 回调函数用的最多的地方, 也是最适合的地方就是异步编程, 然而大量的使用会使得程序员的代码冗余, 有很大的不可读行, 体验极差, 索性让人高兴的事, 人们从来没有停止过对自己舒适度的追求。
以上就是本次小编整理的关于javascript回调函数的相关知识内容,感谢你对创新互联的支持。