我正在尝试编写一个简单的javascript(well coffeescript)测试,并且有一些令人困惑的事情:
dclib.appendVarToUrl = (base, k, v) ->
check base, String
console.log("base is a:", typeof(base))
if base.includes("?")
...
// called with
dclib.appendVarToUrl("some/url", "score", 5)
给我:
base is a: string
TypeError: Object some/url has no method 'includes'
那么为什么String没有.includes()方法呢?
这个coffeescript以奇怪的方式包裹着一个物体吗?
解决方法:
啊啊,看起来我的浏览器支持这个作为ES6方法,但我正在使用的节点版本没有.我在服务器上运行单元测试,而方法在客户端运行正常.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
This is an experimental technology, part of the ECMAScript 6 (Harmony) proposal.