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