apply 方法
请参阅
应用于:Function 对象
要求
版本 5.5
应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,argArray]])
参数
thisObj
可选项。将被用作当前对象的对象。
argArray
可选项。将被传递给该函数的参数数组。
说明
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。call 方法
请参阅
应用于:Function 对象
要求
版本 5.5
调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
请参阅
应用于:Function 对象
要求
版本 5.5
应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,argArray]])
参数
thisObj
可选项。将被用作当前对象的对象。
argArray
可选项。将被传递给该函数的参数数组。
说明
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。call 方法
请参阅
应用于:Function 对象
要求
版本 5.5
调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
解决方案 »
- 拖动列的问题
- JS问题
- jQuery找不到所需结点,麻烦高手看一下~
- arguments 的问题
- 刚学jquery,请教小问题,要显示指定元素的id,死活不出来(提示没有出错)
- 静态页面刷新时,如何防止复选框保留上次用户的选中操作?
- 请教呀... JS 正则模式能否使用变量?
- javascript 点击 加载 固定内容 的问题
- 如何在js时间控件里面加时间验证,有些浏览器当调用时间控件失效时textbox也同时验证
- 找GG
- Response.Write ("<script language=javascript> javascript:history.go(-1)</script>");能实现这样的功能吗
- 还是选项卡问题
http://blog.csdn.net/fason/archive/2004/07/30/apply_call.aspx2.selection.createRange是从当前的选择文件中生成一个textrange
当前的选择文件是指什么?
不论从哪里生成textrange对象操作不都是一样的吗.
有什么区别吗?
obj.createTextRange()产生的textrange对象默认范围在对文本的开始和结束处
感觉apply和call实现的功能是差不多的.只是apply的参数是作为数组或arguments对象来传递的.
而call是将参数单个传递的.
我记得fason的贴子中有这么一句
var agu = Array.prototype.slice.call(arguments,1);
我理解为取得当前函数arguments[1]-arguments[n]并返回一个数组
是不是和下面的语句是一样的
var arg = new Array();
for(i=0;i<arguments.length;i++)
arg[i] = arguments[i];
var agu = arg.slice(1);
------------------------------
不太明白的是arguments既然是一个对象,又怎么能使用Array的方法呢?
function cal()
{
this.add = function (x, y)
{
return x + y;
}
}
// the object to apply
var ins_tmp = new cal();// the function
function b()
{
// notice: without the apply method, what is 'this' below?
alert(this.add(arguments[0], arguments[1]));
}// arguments(parameters).
var args = new Array();args[0] = 1;
args[1] = 3;// try directly call the function 'b()'
// notice the error message in the error dialog box.
b.apply(ins_tmp, args);</script>
{
this.hello = function ()
{
alert("Hello world");
}
}function b()
{
a.call(this);
}new b().hello();
{
alert("hello world");
}function b()
{
a.call();
}b();
不过继承使用b.prototype = a; 也是可以实现的.
不知道还有没有别的方面的应用..