2017-04-01 84 views
0

我完全陌生的JavaScript,但我的朋友問我的幫助。林想知道是否這樣的事情可能在JS?JavaScript函數的功能,返回並訪問一個值

如果項目的價值是 「花園」

我應該得到例如夫婦值名稱:

花園項目

我試過:

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 
     } 

}(); 
+0

不知道的總體目標是什麼,但是這肯定似乎是一個複雜的方式與對象的字符串相關聯。 – 2017-04-01 16:47:10

回答

1

你的代碼主要工作。只有兩個部分你錯過了:

  1. 由於您使用賦值語句定義ProjectNew,您需要在嘗試使用它之前進行賦值。您看到的錯誤意味着它在嘗試使用它時還沒有值(或者它不在您嘗試使用它的範圍內)。
  2. 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);

相關問題