函数中的JavaScript函数,返回和访问值

时间:2017-04-01 16:40:39

标签: javascript function

我是JavaScript新手,但我的朋友向我求助。我想知道JS中是否有可能出现这样的事情?

如果项目的价值是" garden"

我应该得到几个值,例如名称:

花园项目

我试过了:

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
      }

}();

1 个答案:

答案 0 :(得分:1)

您的代码大多有效。你错过了两个部分:

  1. 由于您使用赋值语句定义ProjectNew,因此需要在尝试使用它之前进行分配。您看到的错误意味着当您尝试使用它时它还没有值(或者它不在您尝试使用它的范围内)。
  2. detectTemplate()返回choosenProject本身,而不是具有名为choosenProject的属性的对象,因此您需要从一系列属性访问中删除该部分。
  3. 工作代码:

    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);