请教JS一个问题 Control.prototype.initialize.apply(this, [options]);这句代码是什么意思他和Control.initialize.apply(this, [options]);有什么区别另外apply这里是什么作用initialize是Control的一个方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,argArray]])参数thisObj 可选项。将被用作当前对象的对象。 argArray 可选项。将被传递给该函数的参数数组。 说明如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。 例如<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title></head><body> <script language="javascript" type="text/javascript"> function ShowMe() { document.write(this.name); //当执行下面的 ShowMe.apply(obj);时,这里的this相当于obj } var obj = { name: "一个对象" }; ShowMe.apply(obj); </script></body></html> Control = { initialize:function(a,b){ alert(a+':'+b+':'+this.a); }};var a="c";Control.initialize.apply(window, ['a','b']);运行一下,你就知道了 Control.prototype.initialize.apply(this, [options]);这句代码不知道是什么意思 function A(){ }A.prototype.methoda = function(){ alert(1);}var b = new A();b.methoda.apply(null,[]);//这里运行原生的methodab.methoda = function(){ alert(2);}//methoda被覆盖A.prototype.methoda.apply(null,[]);//执行原生的方法b.methoda.apply(null,[]);//执行覆盖的方法至于apply可以参见我的博文中的相关描述http://blog.csdn.net/reedseutozte/archive/2010/03/13/5375876.aspx javasript 的一种定义吧 原来高手都在JAVA板块啊http://topic.csdn.net/u/20100323/10/99a82599-84b1-4f89-b454-212c34378191.html?19557这个谁帮忙翻译一下,送200分 Control.prototype.initializeControl.initialize不同之处在于内存存放的地方不一样。Control.prototype类似于模板,所有对象只生成一个方法实例而不带prototype的方法则每个对象自己生成一个方法实例至于apply的用法楼上已经说得很清楚了。完成的功能主要是在new Control的时候,自动调用initialize方法比如new Control(1, 2, 3);那么构造函数就可以这么写,initialize : function(a, b, c) {这个时候,a=1,b=2,c=3}我曾经实现过一个javascript的继承模型。甚至调用父类构造方法代码你可以看看http://rainsilence.javaeye.com/admin/blogs/604418参照下 怎么判断是否点击了某区域的外部? 遍历复选框 如果一个都没选中就不提交表单! js中不能给对象赋onclick事件 求一张 游戏人物行走全过程图片(在线等) 使用localeCompare按照汉字拼音排序的结果不太准怎么处理? 学习JAVASCRIPT的一些问题,求助!! javascript 连接Access数据库问题,在线等待,解决了立即给分。 阿信主页上的一些COMPONENT,下载不了啊 如何在htm文件中调用.htc文件中的js函数 求JavaScript的中英文对照教材或资料 【【js怎么得到任意天数前的日期???】】 获取getElementById
参数
thisObj
可选项。将被用作当前对象的对象。
argArray
可选项。将被传递给该函数的参数数组。
说明
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script language="javascript" type="text/javascript">
function ShowMe() {
document.write(this.name);
//当执行下面的 ShowMe.apply(obj);时,这里的this相当于obj
} var obj = { name: "一个对象" }; ShowMe.apply(obj);
</script>
</body>
</html>
initialize:function(a,b){
alert(a+':'+b+':'+this.a);
}
};
var a="c";
Control.initialize.apply(window, ['a','b']);
运行一下,你就知道了
function A()
{
}
A.prototype.methoda = function()
{
alert(1);
}var b = new A();
b.methoda.apply(null,[]);//这里运行原生的methoda
b.methoda = function()
{
alert(2);
}//methoda被覆盖
A.prototype.methoda.apply(null,[]);//执行原生的方法
b.methoda.apply(null,[]);//执行覆盖的方法
至于apply可以参见我的博文中的相关描述
http://blog.csdn.net/reedseutozte/archive/2010/03/13/5375876.aspx
http://topic.csdn.net/u/20100323/10/99a82599-84b1-4f89-b454-212c34378191.html?19557这个谁帮忙翻译一下,送200分
Control.initialize
不同之处在于内存存放的地方不一样。Control.prototype类似于模板,所有对象只生成一个方法实例
而不带prototype的方法则每个对象自己生成一个方法实例至于apply的用法楼上已经说得很清楚了。完成的功能主要是在
new Control的时候,自动调用initialize方法比如new Control(1, 2, 3);
那么构造函数就可以这么写,initialize : function(a, b, c) {
这个时候,a=1,b=2,c=3
}我曾经实现过一个javascript的继承模型。甚至调用父类构造方法
代码你可以看看
http://rainsilence.javaeye.com/admin/blogs/604418
参照下