45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
// var str = "Hello"; // 当使用属性方法时,内部调用 new String("Hello") 生成一个临时的包装对象
|
||
// var str2 = new String("World");
|
||
|
||
|
||
// var i = 1; // 当使用属性方法时,内部调用 new Number(1) 生成一个临时的包装对象
|
||
// var j = new Number(3.1415926);
|
||
|
||
// var isPass = true;
|
||
// var isPass2 = new Boolean(false);
|
||
|
||
// console.log(j.toFixed(2));
|
||
// console.log(str.charAt(0));
|
||
// console.log((1).toFixed(2));
|
||
|
||
// 通过上面第 11、12、13 行代码,我们惊讶的发现普通数据类型也可以使用属性方法
|
||
// 因为当我们使用属性和方法的时候,JS 内部会自动进行一个转换
|
||
// 会自动生成一个包装对象
|
||
|
||
|
||
// var test = {};
|
||
// test.name = "xiejie";
|
||
// test.sayHello = function(){
|
||
// console.log("Hello");
|
||
// }
|
||
// console.log(test.name);
|
||
// test.sayHello();
|
||
|
||
// var i = 1;
|
||
// i.test = "Hello";
|
||
// console.log(i.test);
|
||
|
||
// 当执行 29 行代码的时候,实际上后台执行了以下的操作:
|
||
// var _i = new Number(1);
|
||
// _i.test = "Hello";
|
||
// _i.test = null;
|
||
|
||
// 如果直接声明的时候就是包装对象类型
|
||
// 那么是可以添加属性方法的,因为是一个对象
|
||
// var i = new Number(1);
|
||
// i.test = "Hello";
|
||
// console.log(i.test);
|
||
|
||
var i = 1;
|
||
Number.prototype.test = "Hello";
|
||
console.log(i.test); |