This question already has answers here:
Understanding module design pattern in javascript
(2个答案)
What is the “x = x || {}” technique in JavaScript - and how does it affect this IIFE? [duplicate]
(4个答案)
3年前关闭。
我在查看this code here时遇到了一种我不太了解的样式。我对Java语言还很陌生,但是这种声明风格与我阅读的各种教程中的实现方式截然不同。
基本上我想知道的是,通过这样做可以完成什么工作?
为什么函数卡在括号之间? (function(Spriter){}后面附加的(Spriter ||(Spriter = {}))是做什么的?为什么多次写“ var Spriter;”,我会认为多个“ var Spriter”是多余的。
就此的目的而言,它允许您在Phaser(游戏引擎)中使用Spriter(在2d动画中使用骨骼的动画师套件)中创建的动画。
在这里,因为Spriter不为空,所以它将获取Spriter的值并且不显示值名称,因为在Spriter对象中没有定义为name的属性
希望这可以帮助
(2个答案)
What is the “x = x || {}” technique in JavaScript - and how does it affect this IIFE? [duplicate]
(4个答案)
3年前关闭。
我在查看this code here时遇到了一种我不太了解的样式。我对Java语言还很陌生,但是这种声明风格与我阅读的各种教程中的实现方式截然不同。
基本上我想知道的是,通过这样做可以完成什么工作?
var Spriter;
(function (Spriter) {
. . .
})(Spriter || (Spriter = {}));
var Spriter;
(function (Spriter) {
. . .
})(Spriter || (Spriter = {}));
.
.
.
为什么函数卡在括号之间? (function(Spriter){}后面附加的(Spriter ||(Spriter = {}))是做什么的?为什么多次写“ var Spriter;”,我会认为多个“ var Spriter”是多余的。
就此的目的而言,它允许您在Phaser(游戏引擎)中使用Spriter(在2d动画中使用骨骼的动画师套件)中创建的动画。
最佳答案
var Spriter;
(功能(Spriter){
。 。 。
})(Spriter ||(Spriter = {}));
该代码正在执行以下操作
首先检查是否定义了Spriter变量
如果Spriter定义了某个值,则它将采用该值。
如果没有值,则会将Spriter初始化为空对象
您可以使用以下代码段来清楚地了解
var Spriter;
(function (Spriter) {
alert(Spriter.name);
})(Spriter || (Spriter = {"name":"xyz"}));
var Spriter={"age":10};
(function (Spriter) {
alert(Spriter.name);
})(Spriter || (Spriter = {"name":"xyz"}));
在这里,因为Spriter不为空,所以它将获取Spriter的值并且不显示值名称,因为在Spriter对象中没有定义为name的属性
希望这可以帮助
07-28 07:25