![](/img/trans.png)
[英]what is the difference between var a = {} and var a = function(){}
[英]In javascript, what is the difference between window.function(){} and var variable = function?
// this is function declaration in JavaScript
// @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function
function myFunction (/* args */) { /* body */ }
// this is function expression
// @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/function
const/var/let myFunction = function myFunction(/* args */) { /* body */ }
// this is basically (unnamed) function expression, defining property `f1` on global object `window`
window.f1 = function (/* args */) { /* body */ }
如果将第三种方法更改为第二种方法,它将被绑定到某个范围(将放置该块的位置)。 尽管第三个始终是全局的(可在任何地方使用)。
请注意,您还可以使用第一种和第二种方法在全局范围内声明函数。 例如:
<head>
<script>function myFunction() {/* body */}</script>
</head>
第三个分配给全局范围(浏览器中的window
,Node环境中的global
),因此可以在任何地方访问,例如console
对象。
window.f1 = function(){}
==>由于您将其附加到窗口,因此它将显式地使您的函数成为全局函数,并且可以从任何地方访问
funtion f1(){}
和var vaiable = f1(){}
==>这样,根据您的函数是否封装在另一个函数中,它可以是全局函数或局部函数。
所有三个声明的函数声明/表达式也将产生全局函数。 但是请注意第三个函数表达式:
window.f1 = function(){};
可以在浏览器中很好地工作,但由于全局对象的差异,在其他环境(例如Node)中会引发错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.