[英]How to define a new global function in javascript
我有一個問題,試圖在函數關閉時使函數成為全局函數。 在下面列出的代碼中,我有一個匿名方法,它定義了名為getNameField
的window
上的新函數。
(function () {
function alertError (msg) {
alert(msg);
}
window.getNameField = function (fieldId) {
try{
if(!fieldId) {
fieldId='name';
}
return document.getElementById(fieldId);
} catch(e) {
alertError(e);
}
};
}());
alert(getNameField().value);
這在瀏覽器中運行良好,但是當我在JSLint.com中運行代碼並打開 “Disallow undefined variables”時,它會給我一個錯誤。
第17行第7個問題:
getNameField
'getNameField
'。
你能幫我解決這個問題,以便JSLint真正理解這個函數應該被認為是全局的嗎?
您可以將其稱為window.getNameField
:
alert(window.getNameField().value);
或者你可以在閉包之外定義一個變量:
var getNameField;
(function(){
getNameField=function(fieldId){
// Code here...
};
}());
alert(getNameField().value);
我會嘗試
window["getNameField"] = function(fieldId) {
JSLint為此目的采用注釋注釋。 在這里閱讀使用/*global */
comment。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.