只是查看一些js代码文件,其中包含所有代码:
(function(self) {
//..
})(typeof self !== 'undefined' ? self : this);
你能解释一下上面的javascript代码是什么意思:
什么是self
以及它来自哪里?
最后一行实际上是(typeof self !== 'undefined' ? self : this);
?
答案 0 :(得分:0)
*org.gradle.tooling.BuildException: Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-3.3-bin.zip'.
*
For InteliJ
*Cause: startup failed: build file 'C:\Users\sayyad.ghazi\Desktop\gob\gobblin-master\gobblin-restli\gobblin-throttling-service\gobblin-throttling-service-api\build.gradle': 1: unexpected token: .. @ line 1, column 1. ../../api.gradle ^ 1 error*
console.log(self);
console.log(this);
这是javascript(Immediatelyinvoked函数表达式)中(function(){
})();
的语法。
现在......
IIFE
现在第一个 (function(x){
})(y);
包含实际的匿名函数,第二个()
用于调用该函数。你先通过第二次收到的是什么。
所以,
()
(function(self) {
//..
})(typeof self !== 'undefined' ? self : this);
将检查typeof self !== 'undefined'
(浏览器全局对象)是否存在。如果其现有传递,则传递self
对象或全局范围的范围。
this
和self
将在root提供相同的对象。