日期:2014-05-16 浏览次数:20392 次
String.prototype.del=function(){ alert(typeof(this)) var str=this.substr(1) return str } var arr=new String(789) alert(arr.del())
function myString(){ this[0]=arguments[0]; } myString.prototype.del=function(){ alert(typeof(this)) var str=this.substr(1) return str } var arr=new myString(123456) alert(arr.del())
var a='123'; alert(typeof a);//a为原始String类型,弹出string a=new String('123');//调用String的构造器构造一个String对象,它是String原始值的对象表示法 alert(typeof a);//a是一个对象,弹出object alert(Object.prototype.toString.apply(a));//弹出[object String],这种方式获取一个值的类型比较准确,可以每种类型都试试。 String.prototype.del=function(){ alert(typeof(this)) var str=this.substr(1)//String对象有一个substr方法,所有String原始值也有这个方法,因为String实际上是一个伪String对象 return str } var arr=new String(789) alert(arr.del()) function myString(){ this[0]=arguments[0]; } myString.prototype.del=function(){ alert(typeof(this)) var str=this.substr(1)//这里是你自定义的一个类myString,它未继承String,它没有substr方法。 return str } var arr=new myString(123456); alert(arr); alert(arr.del());//查看js错误控制台,这里会提示错误,对象没有substr方法。 /** * 实际上你的myString类只有一个属性,属性下标为'0' */
------解决方案--------------------
var arr=new String(789);
//这个本身就是一个String类型的Object, String 对象的方法 slice()、substring() 、substr()