function shortUrl () {
$['post']('http://tinyurl.com/api-create.php?url=http://json-tinyurl.appspot.com/', function (a) {
});
};
我想将此函数设为 var,以便可以在脚本中的任何地方使用 shortUrl。喜欢
var shortaddress = shortUrl ();
我想在下一个函数中使用结果。
function shortUrl () {
$['post']('http://tinyurl.com/api-create.php?url=http://json-tinyurl.appspot.com/', function (a) {
});
};
我想将此函数设为 var,以便可以在脚本中的任何地方使用 shortUrl。喜欢
var shortaddress = shortUrl ();
我想在下一个函数中使用结果。
function shortUrl () {...}
相当于
var shortUrl = function () {...};
所以,它已经是一个变量。
函数已经是一个变量,所以你可以这样使用它。例如:
function foo() {
// ...
};
或多或少与
var foo = function() {
// ...
};
基本上,如果删除括号和参数(foo
而不是foo()
),则可以将任何函数用作普通变量。
因此,您可以例如将其分配给其他变量,就像您通常那样:
var bar = foo; // note: no parentheses
bar(); // is now the same as foo()
或者您可以将其作为参数传递给另一个函数:
function callFunc(func) {
func(); // call the variable 'func' as a function
}
callFunc(foo); // pass the foo function to another function
如果要在shortUrl
任何地方使用该函数,则必须在全局范围内声明它。然后该变量成为Window
对象的属性。例如以下变量
<script type="text/javascript">
var i = 123;
function showA(){ alert('it'); window.j = 456; }
var showB = function() { alert('works'); var k = 789; this.L = 10; }
</script>
直接在 Window 对象中声明,因此成为其属性。因此,现在可以从任何脚本轻松访问它们。例如,以下所有命令都有效:
<script type="text/javascript">
alert(i); alert(window.i);
showA(); window.showA();
showB(); window.showB();
alert(j); alert(window.j);
alert(new showB().L); // here the function was called as constructor to create a new object
</script>
javascript 中的函数是对象,因此它们可以自己保存属性。
在上面的示例中,您可以将k
变量视为私有属性,将变量视为对象(或函数)L
的公共属性。showB
另一个例子:如果你在你的页面中包含 jQuery 库,jQuery 通常会将自己暴露为window.jQuery
对象window.$
。只是通常建议非常谨慎地使用全局变量以防止可能的冲突。