在一些jQuery插件中经常看到类似 callback.call(xxx,xxx) 虽然看到书上有介绍 说call和apply函数可以改变作用域,但还是无法非常透彻的理解改变作用域主要是为了解决什么问题,有没有替代方案,或者 这2个函数主要为了解决什么问题,应用场景,何时使用最合适,每次读到这样的代码就晕了,一下子从线性阅读中跳出去了,感觉有点绕

call和apply的作用很简单,就是改变上下文,适用场景太多了,虽然有时候只是为了“美观”,下面几个是我常用的。
1.
复制代码 代码如下:Object.prototype.toString.call(Obj)
用来判断 Obj 的类型
arguments 虽然和Array 很像,但是他没有Array的push之类的方法,怎么办?
Array.prototype.push.call(arguments)
3.Javascript 没有私有方法的概念,想用闭包实现
(function () {
var Person = function () {
this.doSomeThing = function () {
_privateFunction.call(this);
}
}
var _privateFunction = function () {
}
window.Person = Person;
}).call(window);
差不多就是这个意思,callback的时候,当你希望你的callback中的上下文是当前上下文的时候,也可以用call或者apply,有什么好处呢?
这个时候你的callback 里面的this 就是指代当前上下文。例如一个类Person,然后他的方法 say 有一个callback的参数,如果这个callback是通过普通的括号来执行的话,那在这个callback里面执行person的其它方法还需要用person.other 来实现,但是切换上下文之后,就是this.other搞定~代码对比如下:
var Person = function(){
};
Person.prototype.say = function(callback){
callback();
};
Person.prototype.other = function(){
};
var vincent = new Person();
vincent.say(function(){
vincent.other();
});
用了call的:
var Person = function(){
};
Person.prototype.say = function(callback){
callback.call(this);
};
Person.prototype.other = function(){
};
var vincent = new Person();
vincent.say(function(){
this.other();
});
以上所述就是本文的全部内容了,希望大家能够喜欢。
相关推荐:
SEO查:如何通过精准优化让网站流量飞速增长,吉林推广营销怎么样
颠覆写作方式:免费的AI续写软件助你轻松创作
AI智能时代的到来:如何利用人工智能推动生活与商业创新,ai相册下载
AI缩写文本:助力智能生活的革新力量,ai智能写作生成神器下载
ChatGPTApp怎么调大字体?提升阅读体验,让文字更清晰,推荐ai音频
为什么行业都要做seo,为什么要做seo ,ai明信片
ChatGPT:引领智能对话新潮流,助力未来科技,ai写作免费议论文
SEO有意:如何通过优化策略提升网站排名与流量,天津政府智慧网站建设
ChatGPT网页版为什么不能用了?解析原因与解决办法,女人莫名其妙想ai
ChatGPT暂时不可用?如何高效应对并寻找最佳替代方案!,logo ai教程视频
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
SEO新人必读:从零开始SEO的核心技巧与实践指南,网站邮件推广设计
SEO怎么优化比较好?全面提升网站排名的实用技巧,高级ai玩家
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
SEO技巧提升网站流量:打造高效网站的关键策略,Ai测脸相
seo站内优化包括什么营销,seo站内优化操作流程 ,ai 玻璃图标
优化高效率:提升个人与企业竞争力的关键,安康网站推广咨询
丹东抖音seo是什么,抖音seo引流 ,ai工具编写作业指导书
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
SEO外,如何提升网站整体营销效果?,文轩网络营销推广方案
ChatGPT-深度学习与自然语言处理的革命性突破,金华ai视觉锁螺丝机
SEO怎么排名?这5大技巧,轻松提升网站排名,人人都可ai
优化分析:提升企业效益的关键策略,山东大网站建设
ChatGPT页面无法翻阅?带你深度了解背后的原因与解决方案,pdf怎么转换ai文字
ChatGPT怎么打不开了?解决办法,轻松恢复畅通无阻!,ai订酒店ai对话
AI写作技巧,让创作事半功倍!
seo追词是什么,seo词条 ,52580609AI
文字生成AI:开启创意写作的新纪元
SEO优化关键词品牌:如何通过精准的关键词提升品牌价值,ai免费智能写作论文
SEO有点:揭秘优化之道,提升网站排名的秘诀,广州抖音seo厂家地址
seo网络推广是什么,seo网络推广是什么意思 ,ai哪里注音
互联网资源的无限潜力:如何利用数字世界为个人和企业创造价值,信阳网站建设正规公司
Bing搜索不能预览了?搜索引擎的新变革与挑战,ai制作一张窗花
SEO知道:让你的网站在搜索引擎中脱颖而出,水安建设集团网站
优化百:开启数字时代的智能营销新时代,湘潭seo优化报价表
SEO指:如何通过精准优化提高网站流量和转化率,无锡论坛营销推广要多久
什么是SEO优化方案,seo的优化方案 ,ai emorobot
SEO快速提升SEO排名的有效策略:让你的网页飞跃搜索引擎,ai调色食物
“新关键词”开启智慧营销新篇章,助力品牌突围,自己如何做网站seo
SEO化学物质:如何在化工行业提升搜索引擎排名和品牌曝光,rack ai
SEO排序:如何让你的网页在搜索引擎中脱颖而出,平谷抖音seo推广招聘
优化综合:引领高效发展的智慧之道,电影营销的推广方式
Chat启用后ESX连不上?解决方法一网打尽!,为什么AI续写这么离谱
seo网站通过什么软件,网站seo软件哪个 ,战团ai
SEO合同:确保您网站优化成功的关键保障,微博营销推广规则最新
GPT-3模型下载:开启智能时代的无限可能,ai走入
ChatGPT国内版:为中国用户量身定制的智能助手,开启AI新纪元,ai文章赚钱
360ai答题-赋能教育,开启智能学习新纪元,ai 果汁