Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
googlescript/JavaScript:这在对象之后做什么:(Objectname | |{});_Javascript - Fatal编程技术网

googlescript/JavaScript:这在对象之后做什么:(Objectname | |{});

googlescript/JavaScript:这在对象之后做什么:(Objectname | |{});,javascript,Javascript,我正在读一本关于Google脚本的书,不理解语法,也不理解函数关闭后最后一行完成了什么(在这里之间)。我应该把它理解为:Objectname还是空的object括号?这可能意味着什么 var Objectname = (function (parameter) { //additional scripting omitted here return parameter; }) (Objectname || {}); //I don't understand the purpose

我正在读一本关于Google脚本的书,不理解语法,也不理解函数关闭后最后一行完成了什么(在这里之间)。我应该把它理解为:Objectname还是空的object括号?这可能意味着什么

var Objectname = (function (parameter) {

  //additional scripting omitted here

  return parameter;

}) (Objectname || {});  //I don't understand the purpose of this final statement: (Objectname || {})
()
调用它前面的函数

Objectname | |{}
是参数列表

|
是OR运算符。如果左侧为true,则计算结果为左侧,否则计算结果为右侧


如果你删除了所有的速记,你会得到大致如下的结果(它创建了一个额外的全局变量):

function initialise_objectname(parameter) {
    // ...
    return parameter;
}
var Objectname;
if (Objectname) {
    Objectname = initialise_objectname(Objectname);
} else {
    Objectname = initialise_objectname({});
}
下面是一个例子:

var hello = false;
var test = hello || 123;

//test == 123 because hello == false
例2:

var hello = true;
var test = hello || 123;

//test == true because hello == true

有道理吗?如果左侧为true,则会将其设置为true,否则会拾取另一侧。

大量重复项,例如。请使用搜索!我猜这是因为人们大多使用谷歌搜索任何地方,而不是合适的搜索引擎,而且谷歌不接受像这样的特殊标点问题。我可以发誓我已经看过两天前的问题了。Stackoverflow的搜索引擎也忽略了“特殊符号”?编辑,无法发布@vove:Stack Overflow在这方面做得更好。无论是哪种方式,因为它通常有助于搜索操作员的名称或描述其外观:,