我是网络编程的新手;尝试向Javascript in-build对象添加自定义属性。以下代码按预期工作。
window.myName = "John 1";
alert(window.myName); // Displays 'John 1'
但是,下面的代码显示“未定义”,想了解它为什么会这样?
window.myName.lastName = "John 2";
alert(window.myName.lastName); // Displays 'Undefined', why?
答案 0 :(得分:2)
这个undefined
是因为你在第一步中定义了一个字符串而不是一个对象:
window.myName = "John 1";
myName
已定义,但是是一个字符串var,而不是一个对象,因此无法在documentation
了解这一点....您可以将myName
定义为对象的预期结果:
window.myName = {}
window.myName.lastName = "John 2";
时会得到一个结果
window.myName.lastName
输出:
"John 2"
答案 1 :(得分:1)
您正在对象中添加属性,即未定义对象,因此首先定义对象,然后添加动态属性。检查下面 -
if(typeof window.myName ==="undefined") {
window.myName = {}; // If object is not defined then define empty object myname
}
window.myName.lastName = "John 2";
alert(window.myName.lastName); // Now it will show John2