为什么字符串会有length属性-JS中包装对象

任何原始类型的数据  (primitive type) 

比如 String类型的字符串 "abcd"
 
"abcd"  是原始类型的数据
但是 当他调用 length的时候 会返回一个整数( 原始类型数值,注意这里说的是数值  本身是没有任何方法的)
 
 
在调用length的时候, JS引擎会先对原始类型数据进行包装    new String("abcd")
然后对其方法进行调用   new String("abcd").length
下面验证这个说法:
 
primitiveValue  原始值
 
实例  给  Number类型 加一个length方法,可以返回Number的长度
 
Number.prototype.length = function(){return String(this.toString()).length}
 
 
 
posted @ 2016-02-16 11:00  四两websir  阅读(3696)  评论(0编辑  收藏  举报