0
function shortUrl () {   
$['post']('http://tinyurl.com/api-create.php?url=http://json-tinyurl.appspot.com/', function (a) {

});
};

我想将此函数设为 var,以便可以在脚本中的任何地方使用 shortUrl。喜欢

var shortaddress = shortUrl ();

我想在下一个函数中使用结果。

4

3 回答 3

7
function shortUrl () {...} 

相当于

var shortUrl = function () {...};

所以,它已经是一个变量。

于 2013-06-30T19:52:02.693 回答
1

函数已经是一个变量,所以你可以这样使用它。例如:

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
于 2013-06-30T20:02:55.793 回答
0

如果要在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.$。只是通常建议非常谨慎地使用全局变量以防止可能的冲突。

于 2013-06-30T21:39:38.253 回答