js新手求助:Uncaught TypeError: Cannot read property ✀1✀ of undefined

2024-11-16 02:28:28
推荐回答(4个)
回答(1):

正确的理解和解释如下:

把getComputedStyle(arguments[0],false)看做一个对象。

getComputedStyle(arguments[0],false).arguments[1]的意思是对象arguments(数组)属性的第二个值。

getComputedStyle(arguments[0],false)[arguments[1]]的意思是取“arguments[1]的值”对应的属性值。

arguments是参数,在你的function中传进去的参数。

第一中情况的arguments是你getComputedStyle(arguments[0],false)的属性,它没有arguments属性或arguments的个数小于2,当然会出错了,而第二种情况是把你传进去的参数作为属性穿进去的所以正确。

如果你不明白,那换另一种说法:假如你有对象obj,那么第一种情况是obj.arguments[1]也就相当于(obj.arguments)[1],第二种情况就是obj.(arguments[1])。

拓展资料:

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

参考资料:百度百科-javascript

回答(2):

把getComputedStyle(arguments[0],false)看做一个对象。
getComputedStyle(arguments[0],false).arguments[1]的意思是对象arguments(数组)属性的第二个值
getComputedStyle(arguments[0],false)[arguments[1]]的意思是取“arguments[1]的值”对应的属性值。

回答(3):

alert(css(oDiv,'width'));

alert(arguments[0].currentStyle.arguments[1]);

我的理解是你传过去的'width'是个字符串
而alert(arguments[0].currentStyle.(这儿必须跟的是currentStyle的方法或者currentStyle的属性),arguments[1]根本就不是属性、方法,
至于arguments[0].currentStyle[arguments[1]]就能运行,你把他当成数组,arguments[1]是数组索引名,就能理解了

回答(4):

当属性是自定义的变量时,就不能用 . 必须用[]