JavaScript";这";关键字基于属性名称的不同行为

JavaScript";这";关键字基于属性名称的不同行为,javascript,html,Javascript,Html,然而,我遇到(制作)了一个例子,根据属性名称,它的行为有所不同 在案例1中,它打印未定义(这是可以理解的) 在案例2中,它要么不打印任何内容(FF 54),要么打印一些不寻常的代码(在运行此脚本时看到) 问题 为什么更改属性名称时会出现不同的行为 测验 “严格使用”; 案例1 让myAbstractObject2={ text1:“someText”, someMethod1(){ document.write(`[Output]text1=${this.text1}!`); } };

然而,我遇到(制作)了一个例子,根据属性名称,它的行为有所不同

  • 在案例1中,它打印未定义(这是可以理解的)
  • 在案例2中,它要么不打印任何内容(FF 54),要么打印一些不寻常的代码(在运行此脚本时看到)
问题

为什么更改属性名称时会出现不同的行为


测验
“严格使用”;
  • 案例1
    让myAbstractObject2={ text1:“someText”, someMethod1(){ document.write(`[Output]text1=${this.text1}!
    `); } }; myAbstractObject2.someMethod1(); (true?myAbstractObject2.someMethod1:null)();
  • 案例2
    让myAbstractObject3={ 名称:“someText”, someMethod1(){ document.write(`[Output]name=${this.name}!
    `); } }; myAbstractObject3.someMethod1(); (true?myAbstractObject3.someMethod1:null)();

在第2种情况下,
将引用此名称。这就是为什么你会得到一个GUID


它与案例1基本相同(
归结为窗口全局属性),只是您使用了一个关键字,该关键字是窗口全局属性的定义属性。

在案例2中,
此名称将引用。这就是为什么你会得到一个GUID


它基本上与案例1相同(
归结为窗口全局属性),只是您使用了一个关键字,该关键字是窗口全局属性的定义属性。

是否可能从li对象获取name属性?如果使用say name2或text2,会得到相同的结果吗?@Tommy属性取自
窗口
,请参阅@UlysseBN ok cool,因此我的想法是正确的,但对象是错误的。是否可能是从li对象获取name属性?如果使用say name2或text2,会得到相同的结果吗?@Tommy属性取自
窗口
,请参见@UlysseBN ok cool,因此我的想法是正确的,只是对象是错误的。@naaz这个答案适合你的问题吗?我在教程中还没有做足够的工作来完全理解答案。但这确实有道理。@naaz这个答案适合你的问题吗?我在教程中还没有做得足够深入,无法完全理解答案。但这是有道理的。