我对 JavaScript 完全陌生,但我的 friend 向我寻求帮助。我想知道这样的事情在 JS 中是否可能?
如果项目的值为“花园”
我应该获得几个值,例如名称:
花园项目
我尝试过:
var myProject="garden";
ProjectNew.detectTemplate(myProject).choosenProject.name;
我得到:
Unexpected exception 'ReferenceError: ProjectsNew is not defined
但是这不起作用。我所描述的和想要在 JS 中执行的操作是否可能?
var ProjectNew = function() {
function detectTemplate(project) {
if (project=='garden'){
var choosenProject = {
name: "Garden Project",
description: "sample description'",
ansprechpartner: "Greg",
branche: "shoping",
partner: "'Stihl",
technik: 'lawn mover selling'
};
return choosenProject;
}
}
return {
detectTemplate: detectTemplate
}
}();
最佳答案
您的代码大部分都可以工作。您只错过了两个部分:
- 由于您使用赋值语句定义
ProjectNew
,因此您需要在尝试使用它之前对其进行赋值。您看到的错误意味着当您尝试使用它时它还没有值(或者它不在您尝试使用它的范围内)。 detectTemplate()
返回choosenProject
本身,而不是具有名为choosenProject
属性的对象,因此您需要从您的项目中删除该部分一系列的属性访问。
工作代码:
var ProjectNew = function() {
function detectTemplate(project) {
if (project == 'garden') {
var choosenProject = {
name: "Garden Project",
description: "sample description'",
ansprechpartner: "Greg",
branche: "shoping",
partner: "'Stihl",
technik: 'lawn mover selling'
};
return choosenProject;
}
}
return {
detectTemplate: detectTemplate
}
}();
var myProject = "garden";
console.log(ProjectNew.detectTemplate(myProject).name);
关于JavaScript 函数中的函数,返回和访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43159415/