【问题标题】:How can I get titanium to allow setting a default parameter value for a JavaScript function如何让钛允许为 JavaScript 函数设置默认参数值
【发布时间】:2016-05-07 17:08:58
【问题描述】:

基本上,以下模式被拒绝并视为错误。

function fooBar(flag = true) {
  // flag will be set to true is someone called fooBar() without any parameters
}

编辑:我添加了以下 sn-p 以显示实际操作。这更优雅,更易于阅读和维护,运行速度更快(没有下划线要求)......并且它受 JavaScript 支持。

function greet(param = "World") {
	alert("Hello " + param + "!");
}

greet(); // Will alert "Hello World"
greet("Thomas"); // Will alert "Hello Thomas"

谢谢

【问题讨论】:

    标签: titanium appcelerator-titanium appcelerator-studio


    【解决方案1】:

    这更像是一个 javascript 问题,而不是 Titanium 问题。 您可以使用下划线库中的 isUndefined 函数(包括在 Alloy 中):

    function fooBar(flag) {
      // flag will be set to true is someone called fooBar() without any parameters
      if(_.isUndefined(flag))
        flag = true;
    
    }
    

    不要忘记 Titanium Mobile 使用 ECMAScript 5 并且在 ECMAScript 6 中引入了函数的默认值参数:http://ariya.ofilabs.com/2013/02/es6-and-default-argument.html

    【讨论】:

    • 感谢您的回答,但我不同意。 JavaScript 确实支持函数参数的默认值。我已编辑问题以添加可运行代码 sn-p 以向您展示我的真正意思。
    • 好的,很高兴知道。那么,错误是什么?你能发布控制台日志吗?
    • 初始错误是:Unexpected token "="。根据我在哪里使用这种模式,它会导致一连串没有任何意义的错误。如果我尝试编译,我会弹出一个提示:所需项目中存在错误...继续启动? ...带有一个复选框,建议始终在不询问的情况下启动。
    • 我以为我可以修改 Titanium Studio 中的一些设置,但经过几个小时的搜索我放弃了。我认为它在语法验证方面具有与基于 IntelliJ 的 IDE 相似的灵活性。
    • 不要忘记 Titanium Mobile 使用 ECMAScript 5 并且 ECMAScript 6 引入了函数的默认值参数:ariya.ofilabs.com/2013/02/es6-and-default-argument.html
    猜你喜欢
    • 2010-10-28
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多