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

来源:互联网 发布:python idle是干嘛的 编辑:程序博客网 时间:2024/05/23 01:17

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^)/
原创粉丝点击