[英]function variable undefined
为什么最高版本不起作用而较低功能起作用? 了解如何创建和使用对象,这让我感到困惑。 我认为这与我在顶部使用对象有关吗?
var slot1 = { coffee: '1', tea: '2', espresso: '3' } function findItem( obj, prop ){ var item = obj + '.' + prop; console.log(item); } findItem( slot1, coffee ); function addNumbs(num1,num2){ var answer = num1+num2; console.log(answer); } addNumbs(4,3);
没错,当我认为自己掌握了这些要诀时,我就完全被打了巴掌!
问题是在任何范围内都没有将coffee定义为变量,您可以使用obj ['coffee']的表示法将coffee作为字符串传递,以使其工作。 或者,您也可以将其称为slot1.coffee,以便您使用它。
由于这两行,较高的版本不起作用
var item = obj + '.' + prop;
& findItem( slot1, coffee );
检索对象ab
或a['b']
就足够了,其中a是对象而b是键
进行+'。'+ b将导致串联,而不是检索值。
在函数中,将coffee
作为字符串传递,否则它将作为未定义的值传递,因为它将假定在不是
进行更改
var slot1 = {
coffee: '1',
tea: '2',
espresso: '3'
}
function findItem( obj, prop ){
var item = obj[prop];
document.write('<pre>'+item+'</pre>')
}
findItem( slot1,'coffee' );
尝试使用slot1.coffee代替咖啡
findItem( slot1, slot1.coffee );
当您在变量中具有属性名称时,请使用诸如数组myObject[property]
类的对象,其中property是一个变量,其中包含要获取的对象的属性名称。
另外, coffee
不用作变量,而应用作字符串"coffee"
或'coffee'
var slot1 = { coffee: '1', tea: '2', espresso: '3' } function findItem( obj, prop ){ var item = obj[prop]; // You need to access object property as if object was an array when you have property name in variable. console.log(item); } findItem( slot1, 'coffee' ); // You need coffee as a string here, variable coffee was never defined function addNumbs(num1,num2){ var answer = num1+num2; console.log(answer); } addNumbs(4,3);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.