js 函数中的this
function 函数
没有“this”的持久概念, 调用函数时,创建this
function hello(thing) {
  console.log(this + " says hello " + thing);
}
person = { name: "Brendan Eich" }
person.hello = hello;
// 在person中调用 hello, this被创建到了person
person.hello("world") // still desugars to person.hello.call(person, "world")
// 在window中调用 this被创建到了 window
hello("world") // "[object DOMWindow]world"
引用具有持久this值的函数
name = "global";
var person = {
  name: "Brendan Eich",
  hello: function() {
    console.log(this.name);
  }
};
var boundHello = function(arguments) {
  return person.hello.apply(person, arguments);
};
boundHello(); // Brendan Eich
let a = person.hello.bind(person);
a(); // Brendan Eich
let b = person.hello
b() // global
箭头函数
箭头函数捕获this => 创建函数的位置 而不是调用它的位置
箭头函数没有自己的
this, 箭头函数内部的上下文在函数的整个生命周期中保持不变, 并且始终将this绑定到最接近的非箭头父函数中的上下文
let o = {
  a: 'ajanuw',
  hello: function(){
    //  返回箭头函数时,this已经被绑定了
    return () => {
      console.log(this.a)
    }
  }
}
let a = o.hello()
a()
												
											js 函数中的this的更多相关文章
- 在JS函数中执行C#中的函数、字段
		
1.调用字段 cs文件的代码: ; protected void Page_Load(object sender, EventArgs e) { id = ; } js页面的代码: function ...
 - js函数中获得当前被点击元素
		
问题描述:在html页面中点击<a>或者’按钮‘,进入js中的函数,在js函数中获得被点击那个<a>或‘按钮’元素 解决方法:方法一: html中: <a>标签:& ...
 - js函数中this的不同含义
		
1.js函数调用过程中,js线程会进入新的执行环境并创建该环境的变量对象,并添加两个变量:this和arguments,因此可以在函数中使用这两个变量.需要注意的是,this变量不能重新赋值,而arg ...
 - js函数中参数的传递
		
数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...
 - js函数中的BOM和DOM
		
BOM 浏览器对象模型 screen对象 console.log(screen.width);// 屏幕宽度 console.log(screen.height);// 屏幕高度 console.l ...
 - 深入理解JS函数中this指针的指向
		
函数在执行时,会在函数体内部自动生成一个this指针.谁直接调用产生这个this指针的函数,this就指向谁. 怎么理解指向呢,我认为指向就是等于.例如直接在js中输入下面的等式: console.l ...
 - 将从model中获得的数据传到js函数中
		
刚遇到了一种情况,从controller中获得的model是一个集合,需要将这个集合循环放到标签中,并且需要为这些标签添加点击事件,每个值传入对应的点击事件函数中,由于model中的值是通过${ite ...
 - js函数中的this关键字
		
关于这个this关键字,也是很多项目中常常被用到的,那么,有人也许会问,干嘛要用this呢,在函数被调用时,直接指明是什么对象在调用不就行了?还整那么个模模糊糊的概念出来干嘛?不过嘛,存在即真理,既然 ...
 - js函数中写默认值的几种方式(常见的)
		
<script> <!--第一种写法,我更喜欢第一种写法直观一些--> function Person(name){ this.name = name || '默认名字乔丹'; ...
 
随机推荐
- pip的基本使用
			
pip的基本使用 1.pip简介 pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能 pip是官方推荐的安装和管理Python包的工具,用 ...
 - x264阅读记录-2
			
x264阅读记录-2 7. x264_encoder_encode函数-1 查看该函数代码(Encoder.c文件)可以发现,该函数中注释很详细,对编码的整个步骤展示的也相对比较清晰. 在查看具体的代 ...
 - 基于ping++聚合支付进行微信红包开发
			
1.微信方面的开发,一定要详细的阅读微信支付的开发文档. https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13 ...
 - SpringBoot注解大全(转)
			
原文链接:[springBoot系列]--springBoot注解大全 一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Co ...
 - Android:android studio快捷键大全
			
一.常用快捷键 1.Ctrl+E,可以显示最近编辑的文件列表 2.Shift+Click可以关闭文件 3.Ctrl+[或]可以跳到大括号的开头结尾 4.Ctrl+Shift+Backspace可以跳转 ...
 - Vue.js父与子组件之间传参
			
父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对大小写不敏感,component ...
 - JAVA中使用Log4j2日志和Lombok引入日志的方法
			
一.简述 我们项目中既要使用lombok,又要使用log4j2时,使用日志将会更简单. 二.解决 1.引入依赖 <dependency> <groupId>org.apache ...
 - angularjs $$phase
			
https://segmentfault.com/q/1010000000738004/a-1020000000738812 $$phase 是 angluar 内部使用的状态标志位,用于标识当前是否 ...
 - vim配置go语法高亮
			
操作系统 : CentOS7.3.1611_x64 go 版本 : go1.8.3 linux/amd64 vim版本 :version 7.4.160 vim配置go语言语法高亮的问题已经遇到过好几 ...
 - js 将图片文件转换成base64
			
1.情景展示 在JavaScript中,如何使用图片文件转换成base64? 2.解决方案 /** * 网络图像文件转Base64 * @param img dom对象 */ function g ...