更正一下:var myArray=function(){ var x=Array.apply(null,arguments); for(var p in x)this[p]=x[p]; this.length=x.length; }; myArray.prototype=new Array(); arr=new myArray(1,2,4) alert(arr)是可行的,我说不可行是指构造体内用xxx.apply(this,argumengs)来构造的继承方式,对于Array、Date、RegExp对象没试成功。
function Person(name,age)
{
this.name = name||"default name" ;
this.age = age||"default age" ;
this.showPerson = function()
{
alert("Person类:name="+this.name+" ,age="+this.age);
}
}
function Student(name,age,grade)
{
Person.apply(this,arguments);//继承Person的属性和方法 call也可以,但是参数不是数组格式 Person.call(this,name,age)
this.grade = grade ;
this.showStudent = function()
{
alert(" student类:grade="+this.grade);
}
}
var student = new Student("bury","15",'2');
student.showPerson();
student.showStudent();
更正一下:var myArray=function(){
var x=Array.apply(null,arguments);
for(var p in x)this[p]=x[p];
this.length=x.length;
};
myArray.prototype=new Array();
arr=new myArray(1,2,4)
alert(arr)是可行的,我说不可行是指构造体内用xxx.apply(this,argumengs)来构造的继承方式,对于Array、Date、RegExp对象没试成功。
代码如下:
function myString(){
String.apply(this,arguments)
this.str=arguments[0];
this.toString=function(){
return this.str
}
alert(typeof(this))
str=this.substr(1);
alert(str)
};
myString.prototype=new String();
arr=new myString(1232)
obj.temp=fun;
obj.fun(args);
delete obj.fun;