【问题标题】:What does this conf do?这个会议是做什么的?
【发布时间】:2016-10-18 00:42:05
【问题描述】:

所以我在网上看一个教程,发现了这个:

 function generateRobot(conf:Object = null):Robot {
            var conf:Object = conf || {};
            var defaults:Object = {
                laserColor:red,
                personality: "evil"
            }
for (var key:String in defaults){
    conf[key] = conf[key] || defaults[key];
}

谁能帮忙解释一下第 2 行和第 8 行是什么意思?感谢您帮助新的编码员!

【问题讨论】:

  • 在这段代码中,conf 不做任何事情。但它是根据传入的值构建的,缺少一些字段的默认值。这应该是要在此处生成的机器人的配置。大概稍后会从conf读取一些代码。
  • 本例中是否使用了某种库/框架?我认为 JavaScript 通常没有 variable:type 语法。
  • 我想这可能是 Unity3d
  • 这在我看来像 AS3。

标签: actionscript-3


【解决方案1】:

我添加了一些 cmets 并重命名了参数以使其更清晰:

//param is a parameter of the type object with a default value of null that is passed 
//into the function, if nothing is passed in it will be null
function generateRobot(param:Object = null):Robot { 
            //declare a local variable called conf and populate 
            //it with the  parameter if it exists, otherwise create a new object {}
            var conf:Object = param || {};
            //create a default settings object
            var defaults:Object = {
                laserColor:red,
                personality: "evil"
            }
//loop through the default settings
for (var key:String in defaults){
    //conf setting becomes param if exists otherwise use the defaults value
    conf[key] = conf[key] || defaults[key];
}

【讨论】:

    【解决方案2】:

    这些问题似乎特定于变量赋值中的|| 构造。正如@Thilo 提到的,如果参数中缺少该字段,这只是一种指定默认值的方法。

    例如:

    function read_file(file, delete_after) {
        delete_after = delete_after || "False";
        //rest of code
    }
    

    如果在调用函数read_file 时未传递变量delete_after,那么它将假定值"False",或|| 符号之后的任何值。

    有些人更喜欢对 undefined 进行显式检查。

    其他看点:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 2019-02-27
      • 2011-06-24
      • 2012-02-16
      • 2011-02-14
      相关资源
      最近更新 更多