如何解决f='' "['trim']['bind']`Hello, world!`() 有人解释一下这段代码是如何运行的?
函数返回'Hello,world!' 将数组中的修剪和绑定理解为字符串非常令人困惑。
f=''['trim']['bind']`Hello,world!`()
解决方法
我以前从未见过这样的事情。我发现它非常有趣,所以研究了它是如何工作的。这是我试图解释的:
-
''['trim']
-- 初始空白字符串''
具有可用的字符串方法,例如.trim()
。使用 bracket notation,您可以使用''['trim']
访问修剪方法。 -
''['trim']['bind']
-- 虽然不是调用trim方法(这需要在最后添加()),我们调用.bind()
方法,它是trim原型的一部分,再次使用括号表示法。 Bind takes its initial argument and binds it to the previous function (trim) as the 'this' keyword。 -
''['trim']['bind']`Hello,world!`
-- 这里的最后一部分是将数组内的字符串'Hello,world!'
传递给.bind()
方法。这里的符号是用作 tagged template 的字符串文字。这允许将模板文字用作其前面的“标签”的数组参数,在这种情况下是绑定函数。这现在等价于 ['Hello,world!'].trim()。 Trim 将一个字符串数组强制转换为一个字符串,每个元素用逗号分隔。但由于只有 1 个元素,因此返回单个元素。 -
f=''['trim']['bind']`Hello,world!`()
-- 最后用 () 调用整个内容会导致修剪“Hello,world!”,它只返回相同的字符串,因为实际上没有任何可修剪的内容。获取字符串方法的原型只是一个诡计!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。