您的位置:首页 > 移动开发

全面理解javascript的caller,callee,call,apply概念(修改版)javascript

2012-01-09 03:05 1091 查看
this.initialize.apply(this, arguments);
对于这句话2个this指的是同一个内容
var vehicle=class.create();
执行过后,this都指向vehicle本身。
prototype.js的写法,目的是规定一个创建类的框架,这个框架内类的初始化函数名一定是initialize(),而那句令人费解的话的语义是保证initialize一定会在类的实例创建后调用。
如果不用统一的框架创建类的话我们可以这样写:
function vehicle(type){
alert(arguments instanceof array);
this.init = function(){//这里就可以不叫initialize了
this.type = type;
}
this.showself = function(){
alert("this vehicle is "+ this.type);
}
this.init();//那句难解的话其实就是要给每个类都注入这句话而已
}
var moto= new vehicle('moto');
moto.showself();
通过这种写法你得到的moto实例和上面写法的得到的是一摸一样的。
总的来讲,看了你的总结很有帮助。
我常用我写的这种方法创建类,所以对于call apply的理解很模糊
js是脚本语言,所以脚本的灵活性造成了无法做接口、类的继承检查
无法统一规定类构造函数的写法等等,所以prototype用了很绕的方法
目的只有一个 强制规定所有类的初始化方法都叫initialize,然后方便管理了就。

======================================================

在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: