为什么我不能使用全局变量中的对象函数?
Why I can't use object functions from a global variable?
大家好^^
我想使用函数来创建输入,但是像对象(用于创建可自定义的输入),然后将它们分配给一个变量,例如"name"。
之后我想使用它们的功能(创建和检查),第一个在 div "userInfo" 中的 HTML 代码中插入一个输入,第二个检查 input[= 中的值12=]
问题是当我将一个对象分配给全局变量 "name" 然后我使用它们的函数时,浏览器的控制台告诉我 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>
全局符号 "name" 是 window
对象的固有 属性,浏览器不允许您将其更改为字符串。
您可以使用不同的名称(例如 "naem"),应该可以正常工作。当然,选择一个已经用作 window
对象的另一个内在名称的名称是有风险的。整个情况很好地说明了为什么 JavaScript 客户端代码中的全局变量是不可取的:环境是潜在冲突的雷区,就像您遇到的那样。
大家好^^
我想使用函数来创建输入,但是像对象(用于创建可自定义的输入),然后将它们分配给一个变量,例如"name"。
之后我想使用它们的功能(创建和检查),第一个在 div "userInfo" 中的 HTML 代码中插入一个输入,第二个检查 input[= 中的值12=]
问题是当我将一个对象分配给全局变量 "name" 然后我使用它们的函数时,浏览器的控制台告诉我 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>
全局符号 "name" 是 window
对象的固有 属性,浏览器不允许您将其更改为字符串。
您可以使用不同的名称(例如 "naem"),应该可以正常工作。当然,选择一个已经用作 window
对象的另一个内在名称的名称是有风险的。整个情况很好地说明了为什么 JavaScript 客户端代码中的全局变量是不可取的:环境是潜在冲突的雷区,就像您遇到的那样。