JS内置类
javascript提供内置类,包括Array,String,Function等,这些内置类提供一些属性和方法。
var a = new String("hello world"); var b = "hello world"; alert(a.length); alert(b.length); var c = new Array(1,2,3); var d = [1,2,3]; c.push(4); d.pop(); alert(c); alert(d);
只要是类就会有原型,不管它是自定义还是js的内置类。我们可以修改内置类的原型,让JS的基本类型的对象获得一些有趣的功能。
Array.prototype.each=function(fun) { for(var i=0,n=this.length;i<n;i++) { fun(this[i],i); } } Array.prototype.clone=function(){ var o=[]; this.each(function(v,k) { o[k] = v; }); return o; } Array.prototype.map = function(fun) { var o=[]; this.each(function(v,k){ o[k] = fun(v,k); }); return o; } Array.prototype.Delete = function(a){ var o=this.clone(); for(var i=o.length,n=0;i>n;i--) { if(o[i] == a) { o.splice(i,1); } } return o; } var = [1,2,3,2,4,5]; var str = ""; a.each(function(v,k){ str += k+" : "+v+"\n"; }); alert(str); var b=a.map(function(v,k){ return v * 10; }); alert(a); alert(b); var c = d.Delete(20); alert(c);
我们还可以重写内置类的方法:
Object.prototype.test = function() { alert("hello world"); } var a = [1,2,3]; a.test(); function Dog(o) { this.name = o; } Dog.prototype.toString=function() { return "my name is " + this.name; } var f = new Dog("wangcai"); //alert(f.toString()); alert(f); //当alert(a)的时候,自动调用了a的toString方法。在需要字符串的时候,对象会隐式地调用toString方法 f.test();

浙公网安备 33010602011771号