如何在函数中调用函数而不将任何变量传递给函数Javascript
我有以下代码,但它不断抛出一个“uncaughttypeerror:cannotreadproperty'nineAM'of undefined” 通常在OOP中,我会声明一个类,然后在类中有单独的方法。我想用JS做类似的事情,但不太确定这是否可行如何在函数中调用函数而不将任何变量传递给函数Javascript,javascript,function,Javascript,Function,我有以下代码,但它不断抛出一个“uncaughttypeerror:cannotreadproperty'nineAM'of undefined” 通常在OOP中,我会声明一个类,然后在类中有单独的方法。我想用JS做类似的事情,但不太确定这是否可行 function SetBtnToEcr () { document.getElementById("depart").value = "Test 1"; document.getElementById("arrive").value
function SetBtnToEcr () {
document.getElementById("depart").value = "Test 1";
document.getElementById("arrive").value = "Test2";
GetTodaysDate();
new (GetHour()).nineAM();
}
function SetDeptTime () {
SetBtnToECR();
}
function GetHour(){
function nineAM () {
document.getElementById("hour").selectedIndex = "09";
}
function fiveThirtyPM(){
document.getElementById("hour").selectedIndex = "17";
document.getElementById("minute").selectedIndex = "30";
}
function twoFifteenPM(){
document.getElementById("hour").selectedIndex = "14";
document.getElementById("minute").selectedIndex = "15";
}
}
我在网上查看过,但在所有其他示例中,我都看到参数被传递到方法中,或者只传递给返回字符串的方法,然后使用this.methodName返回所需的字符串。但是,我不想返回任何内容,我只想将小时设置为上午9点。如果您打算将
GetHour
设置为一个(类似于一个类),则应该如下所示:
function GetHour(){
this.nineAM = function () {
document.getElementById("hour").selectedIndex = "09";
}
// ...
}
用起来像:
new GetHour().nineAM();
或者,如果您使用ES2015或更高版本,您可以使用:
如果您希望
GetHour
成为一个(类似于一个类),它应该如下所示:
function GetHour(){
this.nineAM = function () {
document.getElementById("hour").selectedIndex = "09";
}
// ...
}
用起来像:
new GetHour().nineAM();
或者,如果您使用ES2015或更高版本,您可以使用:
您需要从函数返回,例如
function GetHour(){
function nineAM () {
document.getElementById("hour").selectedIndex = "09";
}
function fiveThirtyPM(){
document.getElementById("hour").selectedIndex = "17";
document.getElementById("minute").selectedIndex = "30";
}
function twoFifteenPM(){
document.getElementById("hour").selectedIndex = "14";
document.getElementById("minute").selectedIndex = "15";
}
return {
nineAM,
fiveThirtyPM,
twoFifteenPM
}
}
您需要从函数返回,例如
function GetHour(){
function nineAM () {
document.getElementById("hour").selectedIndex = "09";
}
function fiveThirtyPM(){
document.getElementById("hour").selectedIndex = "17";
document.getElementById("minute").selectedIndex = "30";
}
function twoFifteenPM(){
document.getElementById("hour").selectedIndex = "14";
document.getElementById("minute").selectedIndex = "15";
}
return {
nineAM,
fiveThirtyPM,
twoFifteenPM
}
}
您可以使用构造函数,使用
this
关键字定义公共属性和方法,并使用new
关键字创建实例
从ES2015开始,您可以使用熟悉的OOP类型
然后从getHour类的实例访问这些方法
let gh = new getHour();
gh.nineAM();
您可以使用构造函数,使用
this
关键字定义公共属性和方法,并使用new
关键字创建实例
从ES2015开始,您可以使用熟悉的OOP类型
然后从getHour类的实例访问这些方法
let gh = new getHour();
gh.nineAM();
在开始这条路之前,最好阅读Eric Elliot(vert固执己见)关于JavaScript中构造函数、类和工厂的讨论
@baao的回答描述了如何使用工厂实现您的目标。正如埃里克在文章中所说,工厂是最简单的解决方案。绝对值得一看。在开始这条路之前,最好先阅读Eric Elliot(vert Opinistrated)关于JavaScript中构造函数、类和工厂的讨论
@baao的回答描述了如何使用工厂实现您的目标。正如埃里克在文章中所说,工厂是最简单的解决方案。绝对值得一看。
GetHour
函数不返回任何内容。。。也许您想要类似于return{nineAM:nineAM,fiveThirtyPM:fiveThirtyPM,twoFifteenPM:twoFifteenPM}代码>在GetHour
函数的末尾GetHour
函数不返回任何内容。。。也许您想要类似于return{nineAM:nineAM,fiveThirtyPM:fiveThirtyPM,twoFifteenPM:twoFifteenPM}代码>在GetHour
functionPerfect的末尾!非常感谢!谢谢