`

js 上下文(this)

 
阅读更多

重点:在js中所有的代码都有其上下文环境,从面向对象的角度来说,就是一个对象必然是一个更大的对象的一部分。而你创建的这个对象,拥有它的外部对象会被他使用,以this指针的形式。但是现在有个问题,当方法从一个对象传递到另外一个对象的时候,它的外部环境发生改变,导致this会在运行时发生改变。正是因为this指针会被改变,所以需要用一个缓存的机制,来存储当前确定的这个this值。

 

if(!Function.prototype.bind){
 Function.prototype.bind = function(obj){
 var self = this;
 return function(){
 return self.apply(obj);
 }
 };
}

 var self = this; 把this的内容保存起来,这样this的值就是定义的时候的上下文环境。

一般函数里面嵌套函数的时候,会用到这种方式,以免this指定的上下文错误。

 

分享到:
评论

相关推荐

    JS中this上下文对象使用方式

    JavaScript 有一套完全不同于其它语言的对 this 的处理机制。 在五种不同的情况下 ,this 指向的各不相同。 有句话说得很在理 — 谁调用它,this就指向谁 一、全局范围内 在全局范围内使用this ,它将指向全局对象...

    JavaScript核心(对象、原型、继承、上下文、闭包、this).pdf

    面向对象概念(对象封装,各种继承,闭包原理,this作用域等)介绍清晰易懂

    Javascript执行上下文顺序的深入讲解

    全局执行上下文:只有一个,这是默认的,也是基础的执行上下文.(不在任何函数中的代码都是全局执行上下文)他有两个作用,一个是创建了全局变量,也就是指向window下的变量,另一个是将this的指向全局. 函数执行上下文:有...

    js代码-this的指向(模拟1):全局上下文的形式

    js代码-this的指向(模拟1):全局上下文的形式

    javascript执行上下文、变量对象实例分析

    本文实例讲述了javascript执行上下文、变量对象。分享给大家供大家参考,具体如下: 突然看到一篇远在2010年的老文,作者以章节的形式向我们介绍了ECMA-262-3的部分内容,主要涉及到执行上下文、变量对象、作用域、...

    Javascript中的作用域和上下文深入理解

    主要介绍了Javascript中的作用域和上下文深入理解,本文讲解了作用域 VS 上下文、变量作用域、“this”上下文、执行上下文(Execution Context)、作用域链等内容,需要的朋友可以参考下

    11-this:从JavaScript执行上下文的视角讲清楚this_For_vip_user_0011

    1.通过函数的call法设置 1.通过函数的call法设置 2.通过对象调法设置 2.通过对象调法设置 3.通过构造函数中设置 3.通过构造函数中设

    浅谈JavaScript 中的this

    ​ 函数调用的时候会创建上下文,this 是组成上下文的一部分。因此每次函数被调用都会产生新的this,既this的值就是调用当前函数的对象。 2.作为普通函数在全局作用域中被使用 ​ 在全局作用域当中,this 永远指向 ...

    JWT登录鉴权—通用登录模块后端开发.zip

    全局执行上下文:全局执行上下文指的是全局 this 指向的 window ,可以是外部加载的 JS 文件 或者本地 <scripe></script> 标签中的代码。 函数执行上下文:函数上下文也称为局部上下文,每个函数被调用的时候,都会...

    this和执行上下文实现代码

    Javascript中this关键字通常指向当前函数的拥有者。在javascript中通常把这个拥有者叫做执行上下文。

    JavaScript中的this基本问题实例小结

    当你在代码中使用了 this,这个 this 的值就直接从执行的上下文中获取了,而不会从作用域链中搜寻。 关于 this 的取值,大体上可以分为以下几种情况: 情况一:全局 & 调用普通函数 在全局环境中,this 永远指向 ...

    d3-context-menu:d3.js 插件,可让您在可视化中轻松使用上下文菜单

    d3-上下文菜单这是 d3.js 的插件,允许您在可视化中轻松使用上下文菜单。 它 100% 基于 d3 并以“d3 方式”完成,因此您无需担心包含其他框架。 它被编写为非常轻巧且可定制。 你可以在这里看到它的实际效果:使用 ...

    js高级功能简介到上下文实验室在线测试2018

    定义执行上下文:运行JavaScript函数时,它们具有关联JavaScript Object ,并且可以通过关键字this来访问它们。 this :在函数内部, this是代表函数执行上下文的Object call :这是调用函数的函数上的方法,就像()...

    js高级功能介绍到上下文实验室芝加哥网站100719

    定义执行上下文:运行JavaScript函数时,它们具有关联JavaScript Object ,并且可以通过关键字this来访问它们。 this :在函数内部, this是代表函数执行上下文的Object call :这是调用函数的函数上的方法,就像()...

    js高级功能介绍到上下文实验室伦敦网络120919

    执行上下文:运行JavaScript函数时,它们具有关联JavaScript Object ,并且可以通过关键字this来访问它们。 this :在函数内部, this是代表函数执行上下文的Object call :这是调用函数的函数上的方法,就像() 。...

    js高级功能介绍到上下文实验室西雅图网络060319

    定义执行上下文:运行JavaScript函数时,它们具有关联JavaScript Object ,并且可以通过关键字this来访问它们。 this :在函数内部, this是代表函数执行上下文的Object call :这是调用函数的函数上的方法,就像()...

    JS ES6中setTimeout函数的执行上下文示例

    本文介绍的是setTimeout函数,延迟执行函数...我们可以看到setTimeout,被延迟执行的函数,里面的this,指向的是全局作用域,也就是这个函数的上下文为全局上下文。 (2)在ES6的箭头函数中,setTimeout里面,如果执行

Global site tag (gtag.js) - Google Analytics