欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【js bind 函数 使用闭包保存执行上下文】,下面是详细的讲解!
js bind 函数 使用闭包保存执行上下文
Function.prototype.bind=function(obj) {
var _this=this;
return function() {
return _this.apply(obj,
Array.prototype.slice.call(arguments));
}
}
var name='window',
foo={
name:'foo object',
show:function() {
return this.name;
}
};
console.assert(foo.show()=='foo object',
'expected foo object,actual is '+foo.show());
var foo_show=foo.show;
console.assert(foo_show()=='window',
'expected is window,actual is '+foo_show());
var foo_show_bind=foo.show.bind(foo);
console.assert(foo_show_bind()=='foo object',
'expected is foo object,actual is '+foo_show_bind());
关于js bind 函数 使用闭包保存执行上下文的用户互动如下:
相关问题:js中的闭包只对函数而言吗??
答:最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。一、什么是闭包?“官方”的解释... >>详细
相关问题:关于js 中 循环中的闭包 的问题
答://上边的代码没有用闭包,循环10次瞬间就过去了,而你的定时器还没有被触发,所以会输出10,//并且只输出1次,如果加上闭包,就会输出0-9,输出10次:for(var i = 0; i < 10; i++) { (function(index){ setTimeout(function() { console.log(ind... >>详细
相关问题:js 关于闭包暂停执行的函数
答:在javascript中,函数总是在一个特殊的上下文执行(称为执行上下文),如果你将一个对象的函数赋值给另外一个变量的话,这个函数的执行上下文就变为这个变量的上下文了。 下面的一个例子能很好的说明这个问题 代码如下: window.name = "the wind... >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【dom】javascript dom追加内容实现示例-追加内容
- 【checkbox】让checkbox不选中即将选中的checkbox
- 【Array】js中更短的 Array 类型转换-类型转换
- 【append】append和appendTo的区别以及appendChil
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【ajax清除浏览器缓存】Ajax清除浏览器js、css、
- 【AJAX】AJAX异步从优酷专辑中采集所有视频及信息
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
