我是基于 OOP 的 JavaScript 的新手。出于测试目的,我创建了以下代码片段。我创建了四个按钮,单击每个按钮时它将具有不同的功能。当我第一次单击任何按钮时,它会给出预测结果。第二次单击任何按钮时,出现以下错误:
classFunction = new classFunction();
我使用的代码如下:
<html>
<head>
<script type="text/javascript">
var classFunction;
function classFunction() {
this.publicVariable = 'Public Varibale';
var privateVariable = 'Private Variable';
this.publicMethod = function () {
alert('Public Method');
}
function privateMethod() {
alert('private Method');
}
return this;
}
function privateVariable() {
classFunction = new classFunction();
alert(classFunction.privateVariable);
}
function publicvariable() {
classFunction = new classFunction();
alert(classFunction.publicVariable);
}
function privateFunction() {
classFunction = new classFunction();
classFunction.privateMethod();
}
function publicFunction() {
classFunction = new classFunction();
classFunction.publicMethod();
}
</script>
</head>
<body>
<input type="button" value="Private Variable" onclick="privateVariable()" />
<input type="button" value="Public Variable" onclick="publicvariable()" />
<input type="button" value="Private Function" onclick="privateFunction()" />
<input type="button" value="Public Function" onclick="publicFunction()" />
</body>
</html>
新运营商有什么理由不会第二次工作吗?
最佳答案
原因是因为你的变量名和构造函数名相同。因此,当您第一次创建新实例并将其分配给变量时,类会被实例覆盖。
确保您以不同的方式命名以下内容。
var classFunction;
function classFunction()
关于Javascript 新运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11667765/