(1) this.initialize.apply(this, arguments);是什么意思
解决方案 »
- 求一个网站的滑动切换效果实现方法
- 通过window.open()弹出的新窗口默认会被浏览器阻止
- js 怎么实现鼠标停留一秒不动后才执行事件呢
- 如何点击checkbox不触发关联函数
- js如何取得浏览器上的地址
- 求助javacsript高手:js中如何确定DropDownList前一个状态值,因为要做差值比较,在线等
- 如何用javascript停止一个网页的加载呢?就是停止按钮怎样做呢?
- 急急急!window.opener.form1.name_object.value=name[i].value;如果表单名是一个变量,这句话应该怎样写?
- 急啊!如何以邮件形式提交表单,而且可以打开阅读?谢谢
- boostrap3.3.6 弹出框缓存清除
- 关于iframe中显示不了图片的问题
- 新浪抄我!
var Class = {
create: function(){
return function(){this.initialize.apply(this, arguments);}
}
}// 初始化一个实例 并将参数传入initialize方法中
var Class = {
create: function() {
return function() { this.initialize.apply(this, arguments); }
}
}
// 这是prototype.js里面的类构造方法,使用方法是:
var myClass = Class.create();
// 这样就可以创建一个类了。
// 继续加入:
myClass.prototype = {
x : function () { return 1; },
y : function () { return 2; },
initialize : function () { alert(this.x() + this.y()); }
}
// 那么,你在实例化该类的时候:
var mclass = new myClass();
// 此时会弹出一个对话框,相当于:alert(1 + 2);
<script type="text/javascript">
var Class = {
create: function()
{
return function()
{
this.initialize.apply(this, arguments);
}
}
}
// 这是prototype.js里面的类构造方法,使用方法是:
var myClass = Class.create();
// 这样就可以创建一个类了。
// 继续加入:
myClass.prototype =
{
a : 2,
b : 3,
x : function (m_x)
{
return (this.a * m_x);
},
y : function (m_y)
{
return (this.b + m_y);
},
initialize : function (m_value)
{
alert(m_value + ':' + this.x(2) + this.y(4));
}
}
// 那么,你在实例化该类的时候:
var mclass = new myClass('结果');
// 此时会弹出一个对话框,相当于:alert(1 + 2);
</script>
var Class = {
create: function(){
return function(){this.initialize.apply(this, arguments);}
}
}
应该是:初始化一个静态方法“initialize”,然后通过“apply”让类Class.create事例同时继承initialize的方法属性(当然包括参数arguments),该继承是通过this指针的“冒充”或者说“劫持”实现的,Class.create“冒充”了this.initialize。
简单而言:
<script>
function funx(a, b, c){
this.a = a;
this.b = b;
this.c = c;
this.show = function(){alert(this.b)}
}function funy(){
funx.apply(this, arguments);//也可以用“call”
}var obj = new funy(0, 1, 2);
obj.show()//"1"
</script>
“funy”就这样“冒充”或者说“劫持”了“funx”,继承了“funx”的所有方法和属性。