在JavaScript中调用方法

时间:2013-07-26 06:49:38

标签: javascript

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

  1. myFunc的(PARAMS);
  2. obj.myFunc();
  3. 我的问题是;

      
        
    1. 对于他们每个人,访问myFunc()中的值(对于params / obj)究竟有什么区别
    2.   
    3. 对于第一种情况,当我们在myFunc()中使用“this”时,它将引用全局obj(窗口)。第二种情况怎么样?
    4.   
    5. 使用这两种技术中的任何一种的用例是什么?
    6.   

    您还可以在两种技术之间添加任何其他重要差异。 请建议。

2 个答案:

答案 0 :(得分:1)

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

1. myFunc(params)
2. obj.myFunc()

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

function myFunc(params) { }

var obj = {
    myFunc: function() { }
};

第一个电话myFunc(params)是对全局函数 myFunc()的调用,params作为参数传递。 this将引用全局对象,即浏览器中的window(您可以通过window.myFunc === myFunc进行测试,这将返回true

第二次调用obj.myFunc()调用myFunc()对象中的方法 objthis会引用obj window

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

当您需要伪javascript namespace

时,第二种方法很常见

答案 1 :(得分:-1)

我会重新提出你的问题:

3-个案例:your_obj.function():这个通常用于单页Web应用程序中,或者您有多个模块一页,并且您希望将模块分开以便维护。虽然myfunction(args)是全球用途。

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

1 - 我不确定你的意思:)。

这是我的意见。