var Class ={create:function(){ return function(){this.init.apply(this,arguments); } }};
var Fade =Class.create();
Fade.prototype={init:function(a,b,c){alert(arguments.length);}};
var f=new Fade("1",2);
这段代码程序输出:2. 没有问题!
但是我想问一下 Class 里面的 this.init.apply(this,arguments) 中的this 是怎么变成了Fade的..这里的this指代的是什么?
是因为var Fade=Class.create(); 这句 ,所以 this就指向Fade了吗?小弟JS接触不久,求解答!
解决方案 »
- Js 动态创建的id如何动态获取 版主
- javascript with方法问题,求帮助
- 关于如何返回上次访问过的页面的问题
- 请教js(急)
- js脚本 如何 打开文档doc,excel,text
- 全国省份、城市、城镇(辖区)方便调用的JS控件
- 一段javascript的效果,我想每个图片都不一样,且可以根据不同图片跳转到不同页面,求高手进来帮忙看看
- 关于注册用户时设定限制
- javascript能完成vbscript同样的功能吗?那么这段vbscript翻成 javascript该怎么翻呢?
- 分类导航菜单代码---上这个网站的左边全部需求分类导航中鼠标停在主分类时子分类右边显示怎么改把子分类显示在左边??谢谢!
- 如何将其拼接为10,A|11,B| ,如果只有10,A的话 就是10,A|
- 新人问题,CSDN里我头像名字低下的昵称在哪里改,马上结贴
{
this.init.apply(this,arguments)
}Fade.prototype={
init:function(a,b,c)
{
alert(arguments.length);
}
};var f=new Fade("1",2);调用create以后变成了这样 , 这个this自然是 Fade啊
//你这样看,下面两句是相同的。你说this是不是指向Fade呢
var Fade = Class.create();
var Fade = function () {
this.init.apply(this, arguments);
}
this.init.apply(this,arguments);
};所以fade 只是一个函数,可以用他来充当构造器。2. JS中的this始终指向当前对象。
3. new 运算符的工作过程是这样:
3.1 初始化一个空对象并将this指向这个空对象。
3.2 将空对象交给构造器进行加工。 打个比方,C++等面向对象的语言中,对象的一些属性
和方法从他创建的哪一个就定下来了,就好比老鼠生下来
就是老鼠,生下来就注定会打洞。
但JS中一切对象开始都是平等的,大家一
开始什么都没有(或者只有简答的一些公共属性),都是
白纸一张(空对象),需要你用不同的培训机构(构造器)
对他进行培训。构造器里边详细的介绍了你该做什么,this
就是指你自己。
这和我们人很像,没有人生下来是将军,必须通过不断的
磨练才可以。