Can";“外部”;javascript函数调用;jQuery函数;?
我有以下代码:Can";“外部”;javascript函数调用;jQuery函数;?,javascript,jquery,Javascript,Jquery,我有以下代码: (function ($) { $(document).ready(function() { test("hola","caracola"); }); function test(somevar1, somevar2) { alert(somevar1+ "" + somevar2); } }(jQuery)); function atest2(somevar1, somevar2) {
(function ($) {
$(document).ready(function() {
test("hola","caracola");
});
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
}(jQuery));
function atest2(somevar1, somevar2)
{
test(somevar1+ "" + somevar2);
}
执行test2函数时,结果是:
ReferenceError: test is not defined
我的问题是:
如何调用test2来正确执行jQuery的内部测试函数
谢谢
测试
仅在围绕它的匿名函数中定义
在大多数情况下,函数定义应该始终位于任何匿名函数之外。当然也有例外,但这些例外只适用于那些确切知道自己在用闭包做什么的人。
test
仅在围绕闭包的匿名函数中定义
在大多数情况下,函数定义应该始终位于任何匿名函数之外。当然也有例外,但这些例外只适用于那些确切知道自己在用闭包做什么的人。看,这在onready函数之外,然后你就可以使用它了
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
(function ($) {
$(document).ready(function() {
test("hola","caracola");
});
}(jQuery));
看,这在onready函数之外,然后您可以使用它
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
(function ($) {
$(document).ready(function() {
test("hola","caracola");
});
}(jQuery));
您可以使用apply调用函数,即从被调用方调用test
(function ($) {
$(document).ready(function() {
test.apply(this,["hola","caracola"]);
});
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
}(jQuery));
您可以使用apply调用函数,即从被调用方调用test
(function ($) {
$(document).ready(function() {
test.apply(this,["hola","caracola"]);
});
function test(somevar1, somevar2)
{
alert(somevar1+ "" + somevar2);
}
}(jQuery));
正如其他成员所说,如果
test
函数在匿名函数之外,则可以调用它。这是必要的,因为通过在匿名函数中定义test
函数,限制了test
函数的范围。此外,jquery是一个很棒的javascript框架,但是毕竟它的javascript
是有效的javascript
snipplet wud与jquery一起工作,反之亦然正如其他成员所说的那样,test
函数可以在匿名函数之外调用。这是必要的,因为通过在匿名函数中定义test
函数,限制了test
函数的范围。此外,jquery是一个很棒的javascript框架,但是毕竟它的javascript
是有效的javascript
snipplet wud与jquery一起工作,反之亦然如果你想在匿名函数之外使用它,你必须将test
导出到全局范围。这可以通过以下方式实现:
(function ($) {
// ...
function test(somevar1, somevar2) {
alert(somevar1+ "" + somevar2);
}
window.test = test; // <-- This
}(jQuery));
(函数($){
// ...
功能测试(somevar1、somevar2){
警报(somevar1+“”+somevar2);
}
window.test=test;//如果要在匿名函数之外使用它,必须将test
导出到全局作用域。这可以通过以下方式完成:
(function ($) {
// ...
function test(somevar1, somevar2) {
alert(somevar1+ "" + somevar2);
}
window.test = test; // <-- This
}(jQuery));
(函数($){
// ...
功能测试(somevar1、somevar2){
警报(somevar1+“”+somevar2);
}
window.test=test;//您必须在匿名函数外部定义test
。您可以在jQuery加载函数外部定义test()
,并且仍然从内部使用它。您必须在匿名函数外部定义test
。您可以定义test()
在jQuery加载函数之外,仍然从内部使用它。