javascript封装对象的疑惑点
如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!
javascript封装对象的疑惑点
var a = new Boolean( false );
if (!a) {
console.log( "Oops" ); // 执行不到这里
}
我们为false 创建了一个封装对象,然而该对象是真值(“truthy”,即总是返回true,参见第4 章),所以这里使用封装对象得到的结果和使用false 截然相反。
如果想要自行封装基本类型值,可以使用Object(..) 函数(不带new 关键字):
var a = "abc";
var b = new String( a );
var c = Object( a );
typeof a; // "string"
typeof b; // "object"
typeof c; // "object"
b instanceof String; // true
c instanceof String; // true
Object.prototype.toString.call( b ); // "[object String]"
Object.prototype.toString.call( c ); // "[object String]"
再次强调,一般不推荐直接使用封装对象(如上例中的b 和c),但它们偶尔也会派上用场。
摘自 《你不知道的JavaScript》中卷
- 分类:
- Web前端
更新时间:
上一篇:用在线IDE写vue代码下一篇:Javascript原生函数作为构造函数