Javascript 无法在未定义的对象上设置属性
我正在尝试为尚未创建的对象设置属性。它似乎不想让我在运行中添加属性,必须这样做。为什么我会收到错误:Javascript 无法在未定义的对象上设置属性,javascript,Javascript,我正在尝试为尚未创建的对象设置属性。它似乎不想让我在运行中添加属性,必须这样做。为什么我会收到错误: TypeError: 'undefined' is not an object (evaluating 'someItem.anotherProperty = "someOtherValue"') 我不明白为什么我不能动态设置变量someItem的属性。Javascript的全部要点不就是我可以在任何时候向对象添加我想要的东西吗?在本例中是someItem吗 这是我的密码: testObjec
TypeError: 'undefined' is not an object (evaluating 'someItem.anotherProperty = "someOtherValue"')
我不明白为什么我不能动态设置变量someItem的属性。Javascript的全部要点不就是我可以在任何时候向对象添加我想要的东西吗?在本例中是someItem吗
这是我的密码:
testObject = function () {
var someItem;
someItem.anotherProperty = "someOtherValue";
function doStuff () {
someItem.someProperty = "someValue";
}
};
function start () {
item = new testObject();
item.doStuff();
}
您需要将第一行更改为这个变量someItem={};由于默认情况下变量是未定义的,如果初始化时没有为其分配值。undefined不是一个要用属性设置的对象,因此是错误的。someItem在JS中声明为仅仅var someItem时是未定义的。将声明更改为 var someItem={} 更改项目;到var someItem={}
<html>
<head>
<script type="text/javascript">
testObject = function () {
var someItem = {}; //changed
someItem.anotherProperty = "someOtherValue";
function doStuff () {
someItem.someProperty = "someValue";
};
};
function start () {
item = new testObject();
item.doStuff();
}
</script>
</head>
<body onload="start();"></body>
</html>