Javascript 在js中提供嵌套函数的引用
我想提供第二个js中第一个js函数的参考。我知道单个函数和传递变量等。但是,如何在另一个函数中引用函数 HTMLJavascript 在js中提供嵌套函数的引用,javascript,html,Javascript,Html,我想提供第二个js中第一个js函数的参考。我知道单个函数和传递变量等。但是,如何在另一个函数中引用函数 HTML 在这个特定的示例中,您将需要通过新应用程序(或类似程序)创建一个对象,该对象上将有onClickNext,作为继承属性。例如,如果您从变量app引用了该对象,则: document.addEventListener('swiped-left', function(e) { app.onClickNext(); //Call function here
在这个特定的示例中,您将需要通过
新应用程序
(或类似程序)创建一个对象,该对象上将有onClickNext
,作为继承属性。例如,如果您从变量app
引用了该对象,则:
document.addEventListener('swiped-left', function(e) {
app.onClickNext(); //Call function here
// ...
});
该函数也可以作为
Application.prototype.onClickNext
访问,但它显然是作为一种方法使用的,而不是直接使用的。(从技术上讲,对于您展示的代码,如果您直接调用它,它会工作,但是我假设GotonNext
的内容比控制台.log
更复杂。在任何情况下,如果不提供有效的this
来使用,直接调用应用程序.prototype.onClickNext
都是非常糟糕的做法。)在这个特定的示例中,您需要通过新应用程序(或类似应用程序)创建一个对象,该对象上的onClickNext
将作为继承属性。例如,如果您从变量app
引用了该对象,则:
document.addEventListener('swiped-left', function(e) {
app.onClickNext(); //Call function here
// ...
});
该函数也可以作为Application.prototype.onClickNext
访问,但它显然是作为一种方法使用的,而不是直接使用的。(从技术上讲,对于您展示的代码,如果您直接调用它,它会工作,但是我假设GotonNext
的内容比控制台.log
更复杂。在任何情况下,如果不提供有效的this
来使用,直接调用应用程序.prototype.onClickNext
都是非常糟糕的做法。)将引用附加到全局对象(在浏览器中是窗口
)
在下面的代码中,我将var instance
更改为window.instance
。这允许您使用window.instance.onClickNext()
//scripts.js
addEventListener(“加载”,函数(){
var elements=Utility.toArray(document.querySelectorAll(Utility.selector(“应用”));
对于(var i=0;i
将引用附加到全局对象(在浏览器中是窗口
)
在下面的代码中,我将var instance
更改为window.instance
。这允许您使用window.instance.onClickNext()
//scripts.js
addEventListener(“加载”,函数(){
var elements=Utility.toArray(document.querySelectorAll(Utility.selector(“应用”));
对于(var i=0;i
很抱歉,我没有理解。我到底应该提到什么?是函数还是应用程序原型?你能给我举个例子吗?thanks@Saif-显示您的代码-在哪里创建新的应用程序
。完美!非常感谢。所以只需将窗口添加到实例中。但这背后有什么原因吗?我的意思是,为什么不直接访问变量实例?@Saif,因为它们位于不同的文件中。文件中的代码不能直接相互对话-pure swipe.js
hsa不知道在scripts.js
中声明了哪些变量,但它们是在相同的上下文(全局浏览器上下文)中执行的。因此,只要您在两个文件都可以读取的上下文中提供引用(例如,通过将引用附加到窗口
对象),那么它们就可以相互“交谈”。很抱歉,我没有遵循它。我到底应该提到什么?是函数还是应用程序原型?你能给我举个例子吗?thanks@Saif-显示您的代码-在哪里创建新的应用程序
。完美!非常感谢。所以只需将窗口添加到实例中。但这背后有什么原因吗?我的意思是,为什么不直接访问变量实例?@Saif,因为它们位于不同的文件中。文件中的代码不能直接相互对话-pure swipe.js
hsa不知道在scripts.js
中声明了哪些变量,但它们是在相同的上下文(全局浏览器上下文)中执行的。因此,只要在两个文件都可以读取的上下文中提供引用(例如,通过将引用附加到窗口
对象),它们就可以相互“对话”。我尝试了Application.prototype.onClickNext,但没有调用它。由于在应用程序中未定义错误。我尝试了Application.prototype.onClickNext,但没有调用它。如在应用程序中未定义错误。
document.addEventListener('swiped-left', function(e) {
onClickNext(); //Call function here
// ...
});
document.addEventListener('swiped-left', function(e) {
app.onClickNext(); //Call function here
// ...
});
// scripts.js
window.addEventListener("load", function() {
var elements = Utility.toArray(document.querySelectorAll(Utility.selector("application")));
for (var i = 0; i < elements.length; i++) {
window.instance = new Application(elements[i]);
}
});
// pure-swipe.js
document.addEventListener('swiped-left', function(e) {
window.instance.onClickNext(); //Call function here
});