在日常开发中,我们已经习惯了对诸如字符串、数字、布尔值等原始数据类型使用其内建的属性
let str = "Hello";
alert( str.toUpperCase()); // HELLO
alert( str.length); // 5
如果我们把str.toUpperCase()
单拎出来,看起来就好像是str
对象调用了自身的一个方法属性toUpperCase
这时就会突然疑惑:不是只有对象可以使用.
或[]
调用属性吗?为啥你也可以😲
对象调用内置方法
在我们直接解开这个的问题的神秘面纱前,我们不妨先来了解另一个相关问题,这会对我们了解后续答案起到帮助:对象是可以调用属性,但它又是如何调用一些不存在于自身(初始化字面量)的内置属性的?
let obj = {age: "11",
};
console.log(obj.hasOwnProperty("age")); //true
如果你对JS的原型和继承有一些了解,那么这个问题其实非常简单
let obj = {age: "11",
};
/* 相当于
let obj = new Object({age: "11"