您现在的位置:首页 >> 前端 >> 内容

面向对象实例讲解之包装对象

时间:2017/11/23 14:54:00 点击:

  核心提示:首先看下面例子,str是string类型,但是为什么会有自己的方法呢?这就关系到包装类型var str = hello;alert( typeof str );//stringstr.charAt(0...

首先看下面例子,str是string类型,但是为什么会有自己的方法呢?这就关系到包装类型

var str = 'hello';
alert( typeof str );//string
str.charAt(0);
str.indexOf('e');

上面是什么原因呢?

,当出现str.charAt(0),即str后面跟方法时。基本类型会找到对应的包装对象类型,然后包装对象把所有的属性和方法给了基本类型,然后包装对象消失

除过null,undefined,基本类型都有自己对应的包装对象:String Number Boolean ,再看下面例子

var str = new String('hello');
alert( typeof str );//object

当我们给基本类型添加方法时,可以把方法添加到基本类型对应的包装对象上,如下所示

var str = 'hello';
String.prototype.lastValue = function(){
    return this.charAt(this.length-1);
};
alert( str.lastValue() );  //o

思考一道面试题

var str = 'hello';
str.number = 10;
alert( str.number );  //?答案是undefined

因为每出现str.number,就相当于重新创建了一个包装对象。原因在于上面提到的包装对象把所有的属性和方法给了基本类型,然后包装对象消失

作者:网络 来源:jiaojsun的博