全局变量赋值在函数中消失。没有同名的局部变量

时间:2014-09-12 08:13:48

标签: javascript knockout.js phonejs

var viewModel = {
...
defaultTextProject: ko.observable(),
...
}    

function assignProject(params) {
            var projectNo = params.itemData["projectNo"];
            viewModel.selectedProjectTile(projectNo);
            var projectName = params.itemData["projectName"];
            aktivEmployee.aktivProjectId = projectNo;
            aktivEmployee.projectName = projectName;
            viewModel.aktivProjectId(projectNo);
            viewModel.defaultTextProject(projectNo + " " + projectName);

当我点击上面的最后一行时,aktiveEmployee.aktivProjectId和aktivEmployee.projectName变为未定义。但是,vars projectNo和projectName保留其指定的值。 aktivEmployee对象的所有其他属性保持不变。

此外,在最后一行viewModel.defaultTextProject()显示我想要的内容后,显示上面提到的变量仍保留其名称,但我的aktivEmployee对象.aktivProjectId和.projectName正在丢失这些值。

我的第一个想法是viewModel更改正在丢失它们但是直到第3次viewModel更新才会发生,所以这里有些东西我不理解Javascript对象。

有谁知道这里发生了什么?

提前致谢!

0 个答案:

没有答案