如何为 window 对象引用 javascript 方法?
How is the javascript method referenced for the window object?
当我在 on document ready 侦听器中声明一个基本函数时,它不能用于任何内联 javascript 代码,如下所示。但是,当我在内联函数上调用 window.alertMeTwo() 时,它起作用了。
如何引用尚未创建的 Window 函数?
这个链接过程如何运作?
var alertMeOne = function { alert(); }
//works inline
window.alertMeOne = function {alert()};
//works inline
jQuery(document).ready(function() {
var alertMeTwo = function(){alert();}
// does not work inline
window.alertMeTwo = function(){alert()};
//works inline????
});
<head>
<!-- ref to js file here -->
</head>
<body onclick="javascript:alertMeTwo()">
</body>
alertMeOne() 是在全局范围内定义的(与 window 下的范围一致)。
定义的第一个 alertMeTwo() 是传递给 jQuery().ready 的回调范围——这不是全局范围。
第二个是在局部范围内定义的,但绑定到全局范围 (window.alertMeTwo)。
如果您使用内联语法访问函数,则必须指定范围,否则您将故障回复到全局范围。
此外,在这种特定情况下,由于您没有将 alertMeTwo 导出到可从全局命名空间访问的某个命名空间,因此您只能从该范围调用它(在 .ready 回调中)。
尝试在 jquery
中分配 .on() 事件处理程序
window.alertMeTwo.on("load", function(){
//code goes here
});
How can I reference a function of Window that hasn't been created yet?
How does this linking process possible work?
JavaScript 函数,包括那些从 onevent
属性创建的函数,不要 link 直接到变量或在定义时验证它们的存在。
他们引用范围链或 Lexical Environments, leading up to the global scope, that can each store the variables you define in Environment Records。
当函数执行时,当它到达 alertMeTwo()
时,它只会开始搜索环境及其记录以寻找 alertMeTwo
。 ReferenceError
仅在它遍历环境链而未找到变量时抛出。
在 onevent
属性的情况下,这些函数仅在全局 scope/environment 和 Global Environment Record 内搜索。在浏览器中,此对象是浏览器中的 window
对象。
当我在 on document ready 侦听器中声明一个基本函数时,它不能用于任何内联 javascript 代码,如下所示。但是,当我在内联函数上调用 window.alertMeTwo() 时,它起作用了。
如何引用尚未创建的 Window 函数?
这个链接过程如何运作?
var alertMeOne = function { alert(); }
//works inline
window.alertMeOne = function {alert()};
//works inline
jQuery(document).ready(function() {
var alertMeTwo = function(){alert();}
// does not work inline
window.alertMeTwo = function(){alert()};
//works inline????
});
<head>
<!-- ref to js file here -->
</head>
<body onclick="javascript:alertMeTwo()">
</body>
alertMeOne() 是在全局范围内定义的(与 window 下的范围一致)。
定义的第一个 alertMeTwo() 是传递给 jQuery().ready 的回调范围——这不是全局范围。
第二个是在局部范围内定义的,但绑定到全局范围 (window.alertMeTwo)。
如果您使用内联语法访问函数,则必须指定范围,否则您将故障回复到全局范围。
此外,在这种特定情况下,由于您没有将 alertMeTwo 导出到可从全局命名空间访问的某个命名空间,因此您只能从该范围调用它(在 .ready 回调中)。
尝试在 jquery
中分配 .on() 事件处理程序window.alertMeTwo.on("load", function(){
//code goes here
});
How can I reference a function of Window that hasn't been created yet?
How does this linking process possible work?
JavaScript 函数,包括那些从 onevent
属性创建的函数,不要 link 直接到变量或在定义时验证它们的存在。
他们引用范围链或 Lexical Environments, leading up to the global scope, that can each store the variables you define in Environment Records。
当函数执行时,当它到达 alertMeTwo()
时,它只会开始搜索环境及其记录以寻找 alertMeTwo
。 ReferenceError
仅在它遍历环境链而未找到变量时抛出。
在 onevent
属性的情况下,这些函数仅在全局 scope/environment 和 Global Environment Record 内搜索。在浏览器中,此对象是浏览器中的 window
对象。