js中使用new调用内置函数,和直接使用内置函数,输出完全不一致,请问其中原理

Jef_Zhang 2019-02-25 10:11:22
如下代码:

var strObject = String( "I am a string" );
console.log(strObject); // I am a string
console.log(typeof strObject); // string
console.log(strObject instanceof String); // false


strObject = new String( "I am a string" );
console.log(strObject); // String {"I am a string"}
console.log(typeof strObject); // object
console.log(strObject instanceof String); // true


请问,为什么输出完全不一致,js 内置对象内部又都干了什么事情呢
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hello World, 2019-02-26
  • 打赏
  • 举报
回复
Hello World, 2019-02-26
  • 打赏
  • 举报
回复
当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 s 或 s 的字符串表示。
当不用 new 运算符调用 String() 时,它只把 s 转换成原始的字符串,并返回转换后的值。
丰云 2019-02-26
  • 打赏
  • 举报
回复
当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 s 或 s 的字符串表示。 当不用 new 运算符调用 String() 时,它只把 s 转换成原始的字符串,并返回转换后的值。 看看w3school上的介绍吧。 不要把这些东西想象得很神奇,语法规则而已

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧