我正在尝试在尚未创建的对象上设置属性。它似乎不想让我动态添加属性,它必须以这种方式完成。为什么我收到错误:
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();
}
答案 0 :(得分:2)
如果初始化时没有为其分配值,则默认情况下,您需要将第一行更改为此var someItem = {};
,因为变量为undefined
。并且undefined
不是要使用属性设置的对象,因此也是错误。
答案 1 :(得分:2)
someItem
时,{p> var someItem
为undefined
。将声明更改为
var someItem = {};
答案 2 :(得分:1)
将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>