Hay*_*den 3 javascript javascript-objects
在JavaScript中创建对象时,可以从可以使用的Object原型继承属性.
但是字符串是原始类型,因此没有原型.那么,如果没有原型,字符串可以继承那些方法,我怎么能在字符串上使用substr()和repeat()等方法呢?
例如,当我创建一个新数组并将其分配给变量时,我将变量名称键入控制台,并列出了Array原型,我可以访问我可以使用的方法.但是如果我创建一个字符串并将字符串分配给变量,那么我将变量键入控制台,没有附加原型.
那有意义吗?
当您访问原始字符串,数字或其他原语的属性时,JavaScript引擎就像您将其转换为等效对象一样,然后查找该属性.例如:
var str = "hi";
var upper = str.toUpperCase();
Run Code Online (Sandbox Code Playgroud)
JavaScript引擎就好像代码是这样编写的(为了访问toUpperCase属性):
var str = "hi";
var upper = new String(str).toUpperCase();
Run Code Online (Sandbox Code Playgroud)
在ES5之前,规范说JavaScript引擎实际上在那里创建了一个字符串对象,然后调用该属性.从ES5开始略有改变(因为在严格模式下,它可能this具有非对象值),但实质上这个概念仍然是相同的.
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |