52,797
社区成员
发帖
与我相关
我的任务
分享
var Class={
create:function(){
return function(){
this.initialize.apply(this,arguments);
}
}
}
var A=Class.create();
A.prototype={
initialize:function(x){
this.value=x;
}
}
var Class={
create:function(){
return function(){
this.initialize=function(x){this.value=x;}//注意顺序,要不出错误,在构造函数体内调用方法时,方法一定要先申明,这个和其他面向对象语言如C#等是不同的,js是解释性的
this.initialize.apply(this,arguments);
}
}
}
var A=Class.create();
var a=new A(1);
alert(a.value)
var Class={
create:function(){
return function(){//构造函数体内调用initialize方法
this.initialize.apply(this,arguments);
}
}
}
var A=Class.create();
A.prototype={
initialize:function(x){
this.value=x;
}
}
//==因为在构造函数中调用了initialize方法,所以给构造函数中传递值就可以进行初始化了
var a=new A(1);
alert(a.value);
var Class={
create:function(){
return function(){//返回一个空的构造函数体
}
}
}
var A=Class.create();
A.prototype={
initialize:function(x){
this.value=x;
}
}
//==因为未构造函数中调用了initialize方法,所以需要附加的代码才能初始化类变量value的值
var a=new A(1);//即使你给构造函数传递了值也没用,因为构造函数中未调用任何函数来执行初始化
alert(a.value);//此时的输出为undefined
a.initialize(1);//附加代码,调用初始化方法
alert(a.value);//此时的输出为1
var A=function(){
this.initialize.apply(this,arguments);
}
var Class={
create:function(){
return function(){
this.initialize.apply(this,arguments);
}
}
}
var A=Class.create();
A.prototype={
initialize:function(x){
this.value=x;
}
}
var A=function(){
this.initialize.apply(this,arguments);
}
var a=new A(1);
alert(a.value);
var A=Class.create();
//不能在这里实例化,因为还未在原型链prototype上定义initialize方法
//var a=new A(1);
//alert(a.value)
A.prototype={
initialize:function(x){
this.value=x;
}
}
//===========这里实例化,没问题
var a=new A(1);
alert(a.value)
var Class={
create:function(){
return function(){
this.init.apply(this,arguments);//=======返回类构造函数主体
}
}
}
var A=Class.create();
A.prototype={
init:function(x){//========定义原型链上的init方法
this.value=x;
}
}
var a=new A(1);
alert(a.value)
this.initialize.apply(this,arguments);这句应该怎么理解,
这个是在当前对象initialize初始化时候,给当前的对象添加arguments参数
apply会将参数设置到对象中,arguments是传递参数的对象数组
var A=Class.create();这里是不是应该就相当于
var A=function(){
this.initialize.apply(this,arguments);
}
Class.create就是调用这个方法
create:function(){
return function(){
this.initialize.apply(this,arguments);
}
}