此范围是指窗口
This scope, refers to window
我试图理解一件事。我被赋予了以下功能:
给定代码
function initfunc() {
var myVar= {
name : "My name."
};
function display_it() {
//console.log(this); //commented out, window
alert(this.name);
}
document.onclick = myFunc(display_it, myVar);
}
initfunc();
function myFunc(display, x)
{
//make it say My name.!
}
现在我正在尝试使display_it()
功能,显示"我的名字"。当我在display_it()
内登录this
时,它指的是窗口对象。
我的尝试
我得到的唯一"坏主意"是在myFunc
里面放这样的东西:
function myFunc(display, x)
{
window.name = context.name;
func();
}
但我感觉有更好的方法可以做到这一点。有吗?
您可以通过使用 bind
并提供myVar
作为上下文来做到这一点。您还需要返回函数,因为您打算将其用作事件处理程序
function myFunc(display, x) {
return display.bind(x);
}
Function.bind
的第一个参数接受一个对象,该对象将在代码执行时设置为上下文。
多核
bind(( 方法创建一个新函数,该函数在调用时具有其 此关键字设置为提供的值,具有给定的序列 调用新函数时提供的任何参数前面的参数。
这将是
我的解决方案。不知道是否有帮助。
var init = {
name : "myName",
display : function () {
alert(name);
}
};
document.onclick = function() {
init.display();
};
现场示例:http://liveweave.com/ZWUwCu
相关文章:
- 角承诺的“then”函数的成功回调的词汇范围是什么?
- 获取其中骰子的总和'它自己的窗口.并不是所有的窗户
- Php,如何打开一个小消息/表单窗口(不是新的浏览器窗口)
- 下面的 JavaScript 范围是如何工作的
- 函数设置为允许的范围是什么
- Angular js $compile Javascript 窗口范围
- 从不同的窗口(不是子窗口)重新加载iframe-javascript
- 当在同一窗口中打开 URL 时,窗口.Opener 是未定义的
- 此范围是指窗口
- 这个 JavaScript 函数的范围是什么?
- Javascript 打开一个新的浏览器窗口(不是选项卡),地址栏被禁用
- Firefox”;退出全屏,因为窗口插件是焦点“;
- 如何打开一个花哨的盒子窗口(不是点击)
- 窗口.Setinterval是't工作与我的chrome扩展
- 提交表单并关闭窗口——这是正确的做法
- 试着弄清楚范围是怎么工作的
- 引导弹出窗口不是一个函数
- 范围是怎样的?在HTML文档中使用多个Javascript脚本标签
- 检测窗口.打印是确认或取消
- 我的vanilla JSONP上的回调范围是什么?