如何在函数内调用函数而不将任何变量传递给函数 Javascript
2017-05-20
56
我有以下代码,但它一直抛出“未捕获类型错误:无法读取未定义的属性‘nineAM’”
通常在 OOP 中,我会声明一个类,然后在类中使用单独的方法。我想使用 JS 做类似的事情,但不太确定这是否可行。
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 点。
3个回答
如果您希望将
GetHour
用作
构造函数
(类似于类),则应如下所示:
function GetHour(){
this.nineAM = function () {
document.getElementById("hour").selectedIndex = "09";
}
// ...
}
使用方式如下:
new GetHour().nineAM();
或者,如果您使用 ES2015 或更高版本,则可以使用 类 进行定义:
class GetHour {
nineAM() {
document.getElementById("hour").selectedIndex = "09";
}
}
new GetHour().nineAM();
Saravana
2017-05-20
您需要从函数返回,例如
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
}
}
baao
2017-05-20
您可以使用构造函数,使用
this
关键字定义公共属性和方法,并使用
new
关键字创建实例。
从 ES2015 开始,您可以使用熟悉的 OOP 类型 类语法 。
class getHour{
nineAM () {
document.getElementById("hour").selectedIndex = "09";
}
fiveThirtyPM(){
document.getElementById("hour").selectedIndex = "17";
document.getElementById("minute").selectedIndex = "30";
}
twoFifteenPM(){
document.getElementById("hour").selectedIndex = "14";
document.getElementById("minute").selectedIndex = "15";
}
}
然后从 getHour 类的实例访问方法。
let gh = new getHour();
gh.nineAM();
DesTroy
2017-05-20