簡體   English   中英

為什么我不能使用全局變量中的對象函數?

[英]Why I can't use object functions from a global variable?

大家好^^
我想使用函數來創建輸入,但是像對象(用於創建可自定義的輸入)之后,將它們分配給變量,例如“名稱”。 之后,我想使用它們的功能(創建和檢查),第一個在HTML代碼的div“ userInfo”中插入輸入,第二個檢查輸入中的值

問題是當我將對象分配給全局變量“名稱”時,然后使用它們的函數,瀏覽器的控制台告訴我name.create()不是函數,我不能使用它

對不起,我的英語很差,並且在JavaScript xD上的菜鳥水平也很低
謝謝大家^^

 function createAll() { name = new textInput("nameInput", 8, 24, "a-Z0-9", "required"); concatFirst += name.create(); document.getElementById("userInfo").innerHTML = concatFirst; console.log(JSON.stringify(name)); } function textInput(idInput, minlenght, maxlenght, req, requiredOption) { this.idIn = idInput; this.minLong = minlenght; this.maxLong = maxlenght; this.reqCha = req; this.requiredOpt = requiredOption; this.create = function () { return "<p> \\ <input id='" + this.idIn + "' pattern='[" + this.reqCha + "]{" + this.minLong + ",}' maxlenght='" + this.maxLong + "' " + " onchange='name.check()' onmouseover='name.check()' " + this.requiredOpt + " ></input> \\ </p>"; } this.check = function () { document.getElementById(this.idIn).style.boxShadow = "0 0 10px 3px green"; } } 
 <html> <body onload="createAll();"> <div id="mainForm"> <!-- First Form --> <div id="userInfo"> </div> </div> </body> </html> 

全局符號“名稱”是window對象的固有屬性,瀏覽器不允許您將其更改為字符串以外的任何內容。

您可以使用其他名稱(例如“ naem”),並且一切正常。 當然,存在選擇一個已經用作window對象的另一個內在名稱的風險。 總體情況是一個很好的目標課程,它說明了為什么不希望JavaScript客戶端代碼中的全局變量:環境是潛在沖突的雷區,就像您遇到的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM