是否可以在javascript函数中将名称空间作为参数传递?

泽维尔

我有3个.js文件。主Home.js和其他两个.js文件,例如Page1.js,Page2.js

Home.js:

 var Home= {

            Sample: function (pageId,data) {

            pageId.MergePageData(data);
        }
    }

Page1.js:

var Page1 = {

    MergePageData: function (data) {
    // do something
   }
}

Page2.js:

var Page2 = {

    MergePageData: function (data) {
     // do something
   }
}

我尝试通过将其作为字符串传递来调用:

Home.Sample('Page1', 'data');

Home.Sample('Page2', 'data');

但是我想当它作为字符串传递时出现错误

“对象不支持属性或方法'MergePageData'”

我需要在两个不同的js文件中区分两个函数之间的调用。如何实现呢?

Mehran Hatami |

pageId函数中in只是一个变量,当您调用它时,您指定此变量的类型,并且在传递时"Page1"(即a),String它只是一个字符串,与实际Page1对象无关但是有些选项可以为您提供帮助。

您还需要考虑的另一点是,有2个或3个不同的js文件都没关系。重要的一点是,如果将所有JavaScript代码都注入到单个html页面中,则可以在单个window上下文中将所有JavaScript文件中的所有代码都包含在内因此,如果您在全局范围内定义,则window可以在所有JavaScript代码中进行访问。

似乎您Page1Page2是全局对象,因此您可以执行以下操作:

var Home= {

        Sample: function (pageId,data) {

        window[pageId].MergePageData(data);
    }
}

但是我猜datavriable不是全局变量,您有2个选择,首先将其设置为全局变量,或者仅将其存储在类似以下的存储中:

localStorage.setItem("data", JSON.stringify(data));

然后Sample像这样更改您的功能:

var Home= {

        Sample: function (pageId,data) {

        window[pageId].MergePageData(JSON.parse(localStorage.getItem("data")));
    }
}

尽管您必须非常注意data对象的大小,但是如果它是一个具有许多属性和内部对象的大对象,则应重新考虑并更改解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以在JavaScript函数中将变量作为参数传递?

来自分类Dev

是否可以在JavaScript函数中将变量作为参数传递?

来自分类Dev

使用名称空间作为参数的模板函数?

来自分类Dev

为什么将javascript名称空间作为函数基础?

来自分类Dev

是否可以在Kotlin中将类属性作为函数参数传递?

来自分类Dev

是否可以在Javascript中将未声明的变量作为参数传递?

来自分类Dev

Javascript - 通过将名称变量作为参数传递来分解一系列类似的函数

来自分类Dev

使用Composer将名称空间作为psr-0库加载

来自分类Dev

是否可以在 Timer Trigger Azure 函数中将双变量作为参数传递?

来自分类Dev

是否可以在Java中将类名作为参数传递?

来自分类Dev

我可以在函数中将类作为参数传递吗?

来自分类Dev

在Javascript构造函数中将键/值对象作为参数传递

来自分类Dev

JavascriptCore:在JSExport中将javascript函数作为参数传递

来自分类Dev

在JavaScript中将数组作为内置函数参数传递

来自分类Dev

在Javascript构造函数中将键/值对象作为参数传递

来自分类Dev

是否可以将goBack()函数作为参数传递

来自分类Dev

是否可以将* this作为接受引用(&)的函数的参数传递?

来自分类Dev

在javascript中将名称大写

来自分类Dev

为什么某些Boost函数不需要以名称空间作为前缀

来自分类Dev

无法将时间作为函数的参数

来自分类Dev

在F#中将函数作为参数传递

来自分类Dev

在C中将函数作为参数传递的问题

来自分类Dev

在Swift中将函数作为参数传递

来自分类Dev

在Scala / Figaro中将函数作为参数传递

来自分类Dev

在C函数中将结构作为参数传递

来自分类Dev

在C ++中将数组作为函数参数传递

来自分类Dev

在R中将if语句作为函数参数传递

来自分类Dev

在Netlogo中将函数作为参数传递

来自分类Dev

在C函数中将结构作为参数传递

Related 相关文章

  1. 1

    是否可以在JavaScript函数中将变量作为参数传递?

  2. 2

    是否可以在JavaScript函数中将变量作为参数传递?

  3. 3

    使用名称空间作为参数的模板函数?

  4. 4

    为什么将javascript名称空间作为函数基础?

  5. 5

    是否可以在Kotlin中将类属性作为函数参数传递?

  6. 6

    是否可以在Javascript中将未声明的变量作为参数传递?

  7. 7

    Javascript - 通过将名称变量作为参数传递来分解一系列类似的函数

  8. 8

    使用Composer将名称空间作为psr-0库加载

  9. 9

    是否可以在 Timer Trigger Azure 函数中将双变量作为参数传递?

  10. 10

    是否可以在Java中将类名作为参数传递?

  11. 11

    我可以在函数中将类作为参数传递吗?

  12. 12

    在Javascript构造函数中将键/值对象作为参数传递

  13. 13

    JavascriptCore:在JSExport中将javascript函数作为参数传递

  14. 14

    在JavaScript中将数组作为内置函数参数传递

  15. 15

    在Javascript构造函数中将键/值对象作为参数传递

  16. 16

    是否可以将goBack()函数作为参数传递

  17. 17

    是否可以将* this作为接受引用(&)的函数的参数传递?

  18. 18

    在javascript中将名称大写

  19. 19

    为什么某些Boost函数不需要以名称空间作为前缀

  20. 20

    无法将时间作为函数的参数

  21. 21

    在F#中将函数作为参数传递

  22. 22

    在C中将函数作为参数传递的问题

  23. 23

    在Swift中将函数作为参数传递

  24. 24

    在Scala / Figaro中将函数作为参数传递

  25. 25

    在C函数中将结构作为参数传递

  26. 26

    在C ++中将数组作为函数参数传递

  27. 27

    在R中将if语句作为函数参数传递

  28. 28

    在Netlogo中将函数作为参数传递

  29. 29

    在C函数中将结构作为参数传递

热门标签

归档