Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的Invoke方法_Javascript - Fatal编程技术网

JavaScript中的Invoke方法

JavaScript中的Invoke方法,javascript,Javascript,在JavaScript中调用方法的以下两种方法中: myFunc(params) obj.myFunc() 我的问题是, 对于它们中的每一个,在访问myFunc()中的值(对于params/obj)时到底有什么区别 对于第一种情况,当我们在myFunc()中使用“this”时,它将引用全局obj(窗口)。第二个案子呢 使用这两种技术的用例是什么 您还可以添加这两种技术之间的任何其他显著差异。 请提出建议。我将重新回答您的问题: 3-案例:your_obj.function():此函数通常用于单页

在JavaScript中调用方法的以下两种方法中:

  • myFunc(params)
  • obj.myFunc() 我的问题是,

  • 对于它们中的每一个,在访问myFunc()中的值(对于params/obj)时到底有什么区别
  • 对于第一种情况,当我们在myFunc()中使用“this”时,它将引用全局obj(窗口)。第二个案子呢
  • 使用这两种技术的用例是什么
  • 您还可以添加这两种技术之间的任何其他显著差异。
    请提出建议。

    我将重新回答您的问题:

    3-案例:your_obj.function():此函数通常用于单页web应用程序,或者您有多个模块,一页一个,并且您希望为维护目的分离模块。而myfunction(args)是一种全局用法

    2-您可以通过以下方式调用它:window.your_obj.function()

    1-我不知道你的意思:)


    这是我的意见。

    由于您没有提供足够的上下文,我将假设您的两个函数调用:

    1. myFunc(params)
    2. obj.myFunc()
    
    对应于
    myFunc()
    obj.myFunc()
    的以下定义:

    第一个调用
    myFunc(params)
    是对全局函数的调用
    myFunc()
    ,其中
    params
    作为参数传递
    将引用全局对象,它是浏览器内部的
    窗口
    (您可以通过执行
    window.myFunc===myFunc
    进行测试,该操作将返回
    true

    第二个调用
    obj.myFunc()
    是对
    obj
    对象内的方法的调用<代码>此将引用
    obj
    而不是
    窗口

    关于用例,这将取决于您的设计,但显然不建议使用全局函数,因为它们会污染全局命名空间(即,您可能会在不注意的情况下意外地重新定义全局
    myFunc()


    当您需要一个伪javascript时,第二种方法很常见。那么您的猜测是什么呢?我会在列表中添加myFunc.call(这个参数),总是关于prototype:)到底有什么区别?
    function myFunc(params) { }
    
    var obj = {
        myFunc: function() { }
    };