文档章节

在JavaScript中this对象上下文作用域

起个昵称好难啊
 起个昵称好难啊
发布于 2016/11/11 14:32
字数 224
阅读 8
收藏 0

1:在函数调用模式中,例如:

     function ninja(){};

     ninja();

     var samurai = function() {};

     samurai();

这个函数的this作用域全局上下文即Windows对象

2:在方法调用模式中,例如:

     var o = {};

     o.whatever = function () {};

     o.whatever();

这个函数的this作用域的上下文就是这个对象

3:在构造器调用模式中,例如:(注意:构造函数首字母大写)

     function Ninja(){

         this.skulk = function(){ return this;}

     }

     var ninja1 = new Ninja();

     var ninja2 = new Ninja();

     assert(ninja1.skulk() === ninja1, "The 1st ninja is skulking");

     assert(ninja2.skulk() === ninja2, "The 2nd ninja is skulking");

this作用域的上下文就是为创建的新对象

4:apply/call调用模式中,例如:

     function forEach(list, callback){

          for (var n = 0; n < list.length; n++){

               callback.call(list[n], n);

          }

     }

     var list = ['shuriken', 'katana', 'nunchucks'];

     forEach(list,function(index){

          console.log(index);

          console.log(this);

          assert(this == list[index], "Got the expected value of “+ list[index]);   

     })

this作用域的上下文可以是我们指定的任何对象

© 著作权归作者所有

下一篇: Ruby安装
起个昵称好难啊
粉丝 6
博文 31
码字总数 9268
作品 0
朝阳
私信 提问
Function执行原理 & 闭包

Execution Context 执行期上下文 在java或c语言中,都有块级作用域这个概念,而js中则没有。 在js中,作用域只有一种,即函数级作用域。 而执行期上下文,可以理解为函数的作用域或执行环境。...

烽穹寒渊
2018/07/13
0
0
Function执行原理 & 闭包

Execution Context 执行期上下文 在java或c语言中,都有块级作用域这个概念,而js中则没有。 在js中,作用域只有一种,即函数级作用域。 而执行期上下文,可以理解为函数的作用域或执行环境。...

烽穹寒渊
2016/08/21
0
0
图解Javascript上下文与作用域

本文尝试阐述Javascript中的上下文与作用域背后的机制,主要涉及到执行上下文(execution context)、作用域链(scope chain)、闭包(closure)、等概念。 >> 原文 << Execution context 执...

rainyear
2015/07/06
947
7
深入理解JavaScript执行上下文和执行栈

前言 如果你是一名 JavaScript 开发者,或者想要成为一名 JavaScript 开发者,那么你必须知道 JavaScript 程序内部的执行机制。执行上下文和执行栈是JavaScript中关键概念之一,是JavaScrip...

浪里行舟
03/18
0
0
好程序员Web前端培训入门之JS基础知识梳理汇总

好程序员Web前端入门之JS基础知识梳理汇总,Web前端工程师是当前各大企业都比较稀缺的人才,薪资待遇和就业前景都很不错。不论是专业还是非专业,有基础亦或是无基础,都想通过学习Web前端实...

好程序员IT
03/27
12
0

没有更多内容

加载失败,请刷新页面

加载更多

官方来源的 Duo Mobile App 解决了我的 Network Difficulties 问题

https://help.duo.com/s/article/2094?language=en_US 我利用百度搜索下载了一个 Duo Mobile App (由于 Google Play)在大陆不可用。 在扫描旧手机上的 Duo Mobile App 的二维码时, 显示出错...

圣洁之子
3分钟前
1
0
Zabbix监控Mysql容器(Docker容器)主从是否存活

1、在Zabbix Web端创建模板

abowu
4分钟前
1
0
基于 RocketMQ 的同城双活架构在美菜网的挑战与实践

本文整理自李样兵在北京站 RocketMQ meetup分享美菜网使用 RocketMQ 过程中的一些心得和经验,偏重于实践。 嘉宾李样兵,现就职于美菜网基础服务平台组,负责 MQ ,配置中心和任务调度等基础...

大涛学长
10分钟前
1
0
设计模式之:外观模式和桥接模式

作者:DevYK 链接:https://juejin.im/post/5d7e01f4f265da03b5747aac 外观模式 介绍 外观模式 (Facade) 在开发过程中的运用评率非常高,尤其是在现阶段,各种第三方 SDK “充斥” 在我们周边...

Java架构Monster
11分钟前
1
0
人证合一核验设备

人脸身份验证机,人证合一设备1:N如我们现在在车站或一些重要的场所如步行街、城中村等人流密集的场所应用的人脸识别布控系统,其特点是动态和非配合。所谓的动态也就是识别的不是照 片,不是...

非思丸智能
13分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部