一,JS是基于原型的对象
//最基本的面向对象写法
//创建构造函数
function Aaa(){
this.name=‘小明‘;
}
//构造方法
Aaa.prototype.showName=function(){
alert(this.name);
}
//使用
//创建实例
var a1=new Aaa();
a1.showName();
//在JS源码中:系统对象也是基于原型的程序
function Array(){
this.lenglth=0;
}
Array.prototype.push=function(){};
Array.prototype.sort=function(){};
var arr=new Array();
arr.push();
arr.sort();
二,包装对象
/*var str=‘hello‘;
alert(typeof str);//string
str.charAt(0);
str.indexOf(‘e‘);*/
//包装对象:基本类型都有自己对应的包装对象,String/Number/Boolean
//var str=new String(‘hello‘);
//alert(typeof str);//object
//String.prototype.charAt=function(){};
var str=‘hello‘;
//调用此句时触发的动作:基本类型会找到对应的包装对象类型,然后包装对象把所有的属性和方法给基本类型,然后包装对象消失
//str.charAt(0);
//在原型上创建的方法是共享的
String.prototype.lastValue=function(){
return this.charAt(this.length-1);
}
alert(str.lastValue());//o
//调用此句时,在String包装对象下创建num属性,创建完成后包装对象消失
str.num=10;
//此句又重新创建了num属性
alert(str.num);//undefined