包装对象:将JS基础数据类型包装成对象,以便于其能使用对象的方法。
// undefined.split(); // TypeError: Cannot read property 'split' of undefined
// null.toString(); //TypeError: Cannot read property 'toString' of null
let arr = '123'.split(''); // ['1','2','3']
function myString(str, funcName, arg) {
let obj = new String(str);
return obj[funcName](arg);
}
console.log(myString('a b c', 'split', ' '));// ['a','b','c']
JS 的基础数据类型(number、string、boolean、symbol、null、undefined),都是指,没有提供方法调用,所以使用undefined.split()、null.toString()都会报错,但’123’.split(’’)却可以使用,就是因为JS会自动把字符串包装成String对象,然后调用对象下的一些方法,最后再把对象销毁,这样就完成了基础数据类型调用函数的功能。