JS中 没有new 的对象在对象里的this是不存在的
例如:
function a(){
this.b="hi";
this.c=function(){alert('hi');}
}
alert(a.b);//out undefined
try{
a.c();
}catch(e){
alert(e->getmessage());//有输出
}
var a =new a();
alert(a.b);//输出 hi
a.c();//输出 hi
call 方法
调用一个对象的一个方法,以另一个对象替换当前对象。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
举例1:
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.call(sub,3,1);
这个例子中的意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4);
举例2:
function Class1()
{
this.name = "class1";
this.showNam = function()
{
alert(this.name);
}
}
function Class2()
{
this.name = "class2";
}
var c1 = new Class1();
var c2 = new Class2();
c1.showNam.call(c2);
call 的意思是把 c1 的方法放到c2上执行,原来c2是没有showNam() 方法,现在是把c1 的showNam()方法放到 c2 上来执行,所以this.name 应该是 class2,执行的结果就是:alert("class2");
分享到:
相关推荐
异步处理通常与事件循环(event loop)和回调函数结合使用。 回调函数在这种情况下起到关键作用。当一个异步任务完成后,它不会直接返回结果,而是调用预先定义好的回调函数,并将结果传递给这个回调函数。这样,主...
JavaScript中的`call`和`apply`是两种非常重要的方法,它们都用于改变函数内部`this`的指向,并执行该函数。...如果在实际开发中遇到`this`指向问题或者需要动态传递参数,使用`call`和`apply`可以提供解决方案。
总的来说,`call`和`apply`是JavaScript中实现动态上下文绑定和灵活参数传递的重要工具,对于理解和使用JavaScript的高级特性,如原型继承、函数封装和异步处理等,具有至关重要的地位。掌握它们的用法能够极大地...
### Javascript call和apply区别及使用方法 在JavaScript中,`call`和`apply`方法被用于显式地设定函数体内`this`的值,这是所谓的函数借用(method borrowing)或函数上下文改变(context changing)。它们使得一...
本文将详细解释JavaScript中call(), apply(), 和 bind() 方法的作用、语法以及使用场景,并且会探讨回调函数的使用,帮助理解这些概念在实际编程中的应用。 首先,我们来探讨call() 和 apply() 方法。这两个方法都...
JavaScript中的`call`和`apply`是两种非常重要的函数调用方式,它们的主要作用是改变函数执行时的上下文(即`this`的指向),从而解决特定的问题并提供灵活的编程模式。理解这两个方法对于深入JavaScript编程至关...
本文实例讲述了python使用multiprocessing模块实现带回调函数的异步调用方法。分享给大家供大家参考。具体分析如下: multipressing模块是python 2.6版本加入的,通过这个模块可以轻松实现异步调用 from ...
在上面的例子中,`apply_operation`函数接受两个整数和一个`callback_t`类型的函数指针。`multiply`函数作为回调函数传入,`apply_operation`根据传入的函数指针调用`multiply`并返回结果。 现在,我们来看看`...
返回的匿名函数在被调用时,它会收集自己的`arguments`对象(即`innerArgs`),然后将`outerArgs`和`innerArgs`合并,通过`apply`方法调用原始的`callback`,确保`this`指向`context`。 在不支持`bind`方法的环境中...
【标题】"terraform-tower-gcp-post-provision-callback-demo" 演示了如何在Google Cloud Platform (GCP) 上使用Terraform和Ansible Tower进行资源自动化配置,并实现资源创建后的回调功能。 在Terraform中,我们...
为了解决这个问题,我们可以采取一系列优化策略,包括CDN引入和使用webpack的`splitChunks`配置。然而,CDN引入需要手动操作,而`splitChunks`虽然可以分离出第三方包,但不能自动注入到相应的HTML页面中。 为了...
this.init.apply(this,arguments) : new $.tabs(obj) } //主动事件 通过编程触发 //被动事件 由用户的行为触发 $.tabs.prototype = { init:function(obj){ var that = this; //配置属性 $.extend(this,{ ...
总之,Bootstrap-Daterangepicker 是一个强大且灵活的日期范围选择工具,通过合理使用和配置,能够极大地提升用户在网页上的交互体验。学习和理解这个插件的内部机制以及如何与之交互,对于提升网页开发能力非常有...
在实践中,可以结合使用消息队列和进程池来实现更复杂的并行处理场景。例如,可以将任务队列和结果队列分别对应两个消息队列,进程池中的进程从任务队列中读取任务并执行,将结果放入结果队列中。这样,既可以利用...
此函数是使用固定数量的参数对apply进行的简化,因此它可以在内部使用erlang:apply 。 eplugin : apply ( my_fancy_callback , [ 1 , 2 , 3 ]) =:= eplugin : call ( my_fancy_callback , 1 , 2 , 3 ).
apply.dataprocessors.com.au 解决方案 (function() { // Load the script var script = document.createElement("SCRIPT");... var checkReady = function(callback) { if (window.jQuery)
- 当`args`存在时,使用`callback.apply()`调用回调函数,将`object[i]`作为上下文(即`this`),并将`args`作为参数传递。 - 当`args`不存在时,使用`callback.call()`调用回调函数,将`value`作为上下文,`i`...