Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不是';读取对象中的输入值不是吗?_Javascript_Function_Oop_Object_Input - Fatal编程技术网

Javascript 为什么不是';读取对象中的输入值不是吗?

Javascript 为什么不是';读取对象中的输入值不是吗?,javascript,function,oop,object,input,Javascript,Function,Oop,Object,Input,我正在学习一些旧的迷你项目,并试图将旧的函数式编程转换为OOP。在下面的例子中,我会想象,基于项目的简单性,保持基本功能更容易,但我只是想将其更改为OOP,因此我开始了解两者之间的区别。我遇到的问题是,当我将numberBox.value赋值给我的years属性时,它将其读取为null(加载页面时的值),尽管我有一个指向convert函数的input onclick事件,当我手头有我的基本功能代码时,它读取numberBox的值很好,并且随着每个键的输入而改变,就像输入事件应该做的那样。为什么它

我正在学习一些旧的迷你项目,并试图将旧的函数式编程转换为OOP。在下面的例子中,我会想象,基于项目的简单性,保持基本功能更容易,但我只是想将其更改为OOP,因此我开始了解两者之间的区别。我遇到的问题是,当我将numberBox.value赋值给我的years属性时,它将其读取为null(加载页面时的值),尽管我有一个指向convert函数的input onclick事件,当我手头有我的基本功能代码时,它读取numberBox的值很好,并且随着每个键的输入而改变,就像输入事件应该做的那样。为什么它不能在我的物体中识别它

const numberBox=document.querySelector(“#年”);
const days=document.querySelector(“#days”);
const hours=document.querySelector(“#hours”);
const minutes=document.querySelector(“#minutes”);
numberBox.addEventListener(“输入”,转换);
让转换器={
年份:numberBox.value,
今天:功能(){
返回此。年*365;
},
toHours:函数(){
返回此。年*8760;
},
toMinutes:函数(){
返回此。年*525600;
}
};
函数转换(){
days.lastElementChild.innerHTML=converter.toDays();
hours.lastElementChild.innerHTML=converter.toHours();
minutes.lastElementChild.innerHTML=converter.toMinutes();
}
下面是我改为OOP之前的旧功能代码。我原以为两者都能奏效,但似乎我错了。谢谢大家

函数转换(){
让years=numberBox.value;//也可以使用THIS.value,因为这是我正在输入的框
days.lastElementChild.innerHTML=年*365;
hours.lastElementChild.innerHTML=年*8760;
minutes.lastElementChild.innerHTML=years*525600;
}
  • numberBox.value
    =>
    Number(numberBox.value)
    。始终将文本值转换为适当的类型
  • function convert(){…}
    Add-to-function
    converter.years=Number(numberBox.value)
    ,否则您将使用
    converter.years
    属性,但决不会从输入中为其分配更新后的值

当输入事件发生时,新代码不会更新
转换器。年份
,这与每次创建
年份
变量的旧代码不同。JS注意:不要使用
.innerHTML
如果设置文本,请使用
.textContent
。现在养成这种习惯意味着以后更少的潜在代码注入漏洞。嘿,你在和真人交谈!请用正确使用的大写字母和标记来表示敬意。有人能告诉我为什么我被记下这个问题吗?我两个月前才开始学习,我认为这是一个合理的问题。似乎经常发生在我身上?@KevinGreetham他们嫉妒你的问题是多么简单:)也许如此!哈哈