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

标签 javascript function

我对 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
      }

}();

最佳答案

您的代码大部分都可以工作。您只错过了两个部分:

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

关于JavaScript 函数中的函数,返回和访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43159415/

相关文章:

javascript - 100 多张图片的图片 src - iOS 应用程序大小问题

javascript - "Phased"在javascript中执行函数

javascript - 从 URL 中删除最后两个参数

javascript - ESLint:如何在文件中设置 "new-cap"规则的 "capIsNewExceptions"选项?

javascript - 有人可以解释一下参数如何传递该值吗?

jquery - 无法运行两个不同的动画功能

c - 如何在其他函数中使用二维数组?不知道如何让它发挥作用

objective-c - 函数和函数指针可以像在 C 中一样在 ObjC 中使用吗?

javascript - 仅使用 ui-router 和 AngularJS 更改一个 View

javascript - 这些片段有什么区别?