我想为String编写一个log
方法,可以打印string
,但不能正确使用
String.prototype.log = () => console.log(this.toString())
'Print Me'.log() // [object Window]
我想打印Print Me
,而不是[object Window]
,我该怎样才能让它发挥作用
答案 0 :(得分:1)
哦,是的!确实如此。错误是this
没有指向箭头函数中的字符串:
String.prototype.log = function() {
console.log(this.toString())
}
'Print Me'.log();

您可以看到使用常规功能时它可以正常工作。您需要阅读有关箭头函数的词法范围的更多信息。
答案 1 :(得分:1)
this
属于封闭上下文。你不应该在这里使用箭头功能,因为你需要访问字符串对象。
成功
String.prototype.log = function() { console.log(this.toString()) }