call使用情况
1.class.call(obj)
让obj进入class的上下文执行,替代this指针。
2.class.call(class)
3.obj1.method.call(obj2);
改变obj1.method方法中上下文执行,替代this指针。(只改变了method方法中的this,没有改变class中的this)
4.fn.call(fn) 与 class.call(class) 一样,只是 没有this,也就是单纯的改变函数的执行环境。
function add(a,b){
alert(a+b);
}
function sub(a,b){
alert(a-b);
}
add.call(sub,3,1); //4 add中没有this,所以sub直接忽略
5.*此引用和第4点差不多,只是有一点变化,fn也就是函数,每个函数都属于Function.prototype,所以都有call apply方法。
function f1(){
alert(1);
}
function f2(){
alert(2);
}
var f3 = f1.call;
f1.call(f2);//1
f3.call(f2);//2 等效 f1.call.call(f2)
/***下面例子复杂一点***/
function jsCall(oThis){
var argsNew = [];
for(var i=1;i<arguments.length;i++){
argsNew.push(arguments[i]);
}
// alert(this);
return this.apply(oThis,argsNew); //这里的this就是当前执行函数
}
Function.prototype.jsCall = jsCall;
function f1(a){
alert([this,a,'f1']);
}
// f1.jsCall = function (oThis){
// var argsNew = [];
// for(var i=1;i<arguments.length;i++){
// argsNew.push(arguments[i]);
// }
//
// // alert(this);
// return this.apply(oThis,argsNew);
// }
function f2(a){
alert([this,a,'f2']);
}
// f1(33);
f1.jsCall(f2,11); //f2直接替换f1中的this
相关推荐
CALL的基础理解
主要介绍了JavaScript中函数(Function)的apply与call理解,本文讲解了JavaScript函数调用分为4中模式以及通过apply和call实现扩展和继承两方面,需要的朋友可以参考下
js代码-手写实现 new 手写实现 call 理解执行 call 后输出的是函数执行的值,并且传进去的对象执行了相应函数,属性会发生变化。
Array.prototype.slice.call(thisArg[, arg1[, arg2[, …]]])成员介绍: Array 数组对象 prototype [property]是javascript中对象的属性,用来返回对象的原型引用,可以动态的给此添加方法和属性,对象如array,...
理解JavaScript的caller callee call apply
曾经试过的一个分析游戏内存和call的测试,只为理解游戏原理。代码只是演示如何在其他进程中创建一个线程并执行
NULL 博文链接:https://cuckoosnest.iteye.com/blog/470131
深化理解关于javascript中apply()和call()方法的区分_.docx
本文实例讲述了PHP call_user_func和call_user_func_array函数的简单理解与应用。分享给大家供大家参考,具体如下: call_user_func():调用一个回调函数处理字符串, 可以用匿名函数,可以用有名函数,可以传递类的...
在JavaScript 中,this的指向是动态变化的,很可能在写程序的过程中,无意中破坏掉this的指向,所以我们需要一种可以把this的含义固定的技术,于是就有了call,apply 和bind这三个方法,来改变函数体内部 this 的...
如果您想了解一些启发端的原理知识,或者阅读下面的文档有不理解的名词,可以访问博客。 如果您在使用callapp-lib的过程中,有好的想法或发现了bug,提问题就行,作者会及时跟进。 安装 使用安装: npm install --...
运行webdemo的robotframework测试例子,生成了基于profile的完整的call graph,可以对照源代码理解整个框架的设计思路
了解完这两个方法的概念后,我们来一步一步理解他们的应用. 改变方法内this的指向 我们先来看下面这个例子 var name = "编程的人"; var age = 1; var person = { name:"公众号:bianchengderen", age:20 } function ...
NULL 博文链接:https://davidxiaozhi.iteye.com/blog/1026937
如果没接触过动态语言,以编译型语言的思维方式去理解javaScript将会有种神奇而怪异的感觉,因为意识上往往不可能的事偏偏就发生了,甚至觉得不可理喻.如果在学JavaScript这自由而变幻无穷的语言过程中遇到这种感觉,...
尾调用(Tail Call)是函数式编程的一个重要概念,下面这篇文章主要给大家深入的介绍了关于JavaScript中尾调用的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
Javascript – 全面理解 caller,callee,call,apply Author: BlueDestiny, never-online From: http://www.never-online.net, Blog.csdn.net/BlueDestiny 1、caller JScript参考中说明为:返回一个对函数的...