2016-08-24 28 views
1

运行我有建立在角/ PhoneGap的我得到以下错误角JS Android应用意外标记为默认参数

Uncaught SyntaxError: Unexpected token =

该错误是由用于parameter.But提供的默认值引起应用程序时为什么会这样?它在一些设备上工作得很好,并在其他设备上抛出这个错误。 下面是代码:

.factory('foo' , function(){ 
    return { 
    test : function(id = 0){ 
    console.log(id); 
    } 
    } 
}) 

这里是解决方案:

.factory('foo' , function(){ 
    return { 
    test : function(id){ 
    id = (id !== undefined) ? id : 0; 
    console.log(id); 
    } 
    } 
}) 
+0

您的解决方案具有评估为falsey的值问题,请阅读此答案以获取更多详细信息http://stackoverflow.com/a/6486334/4963159 –

回答

1

Default parameters是一个相当新的ECMAScript的功能,只是在2015年的ECMAScript

,它的作品之所以加入在某些设备上而不是其他设备上,可能会有不同的浏览器或同一浏览器的不同版本。

只有最新的浏览器才能够使用ECMAScript 2015功能来解释和编译您的代码。

为了解决这个问题,如果您想使用最新的规格而不用担心在哪些浏览器上检查哪些功能可用,请考虑在构建管道中使用诸如Babel的转译程序。