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>