اجعل الوظيفة تعلن في الإغلاق العالمي دون استخدام نافذة
-
28-09-2019 - |
سؤال
كيف أقوم بعمل وظيفة معلنة في إغلاق ، عالمية؟ هذا مخصص لبرنامج Google Apps ، وبالتالي لا نافذة او شباك.
هناك وثائق حول كيفية استخدام عمليات الإغلاق في البرامج النصية لتطبيقات Google ، لكن المثال يعلن كائنًا بدلاً من وظيفة.http://code.google.com/googleaps/appsscript/articles/appengine.html
var json = json || {} ؛
// foo = function(){}
(function ()
{
...
foo = function (a, b)
{
...
}
foo.prototype =
{
...
}
// window.foo = foo; // Not Possible
}());
المحلول
هذا يجب أن يعمل:
var globalFoo;
(function ()
{
...
foo = function (a, b)
{
...
}
foo.prototype =
{
...
}
globalFoo = foo;
// window.foo = foo; // Not Possible
}());
لقد أجريت اختبارًا في HTML منتظم يعمل على المتصفح وهو يعمل بشكل جيد. هذا هو المثال:
var globalFoo;
console.log("O1")
console.log(globalFoo);
(function(){
console.log("I1")
console.log(globalFoo);
var x = 13;
var foo = function() {
console.log('foo caled ' + x);
x++;
return true;
}
foo();
globalFoo = foo;
console.log("I2")
console.log(globalFoo);
})();
console.log("O1")
console.log(globalFoo);
console.log(globalFoo());
ناتج Firebug إلى ذلك هو:
O1
undefined
I1
undefined
foo caled 13
I2
function()
O1
function()
foo caled 14
true
لا تنتمي إلى StackOverflow