JS中this的指向,this是js中的一个关键字

1.this的指向有这四种情况

1. 在普通的函数中,this指向全局对象window
2.在构造函数中,this指向创造出来的实例
3.对象的方法里面调用,this指向调用者
4. 在函数中,严格模式下,this 是 undefined

// 普通方法中
function bar () {console.log(this) // this指向的是window
}
bar()
// 构造函数中
function Animal() {this.name = 'zzz',this.sayName = function () {console.log(this) // 指向的是a实例}
}
var a = new Animal()
a.sayName()
// 对象方法
var obj = {name: '张三',fullName: function () {console.log(this.name)}
}obj.fullName() // 这的this指向 obj这个对象
// 函数严格模式下
<script type="text/javascript">'use strict'function a () {console.log(this)}a() // undefined
</script>

2.改变this的指向

  1. apply() apply(thisScope, [arg1, arg2, arg3…]) 只接收两个参数,
  2. call() call(thisScope, arg1, arg2, arg3…) 接收多个参数
  3. bind() bind(thisScope, arg1, arg2, arg3…) 接收多个参数,返回一个函数。在这个新函数中,this将永久地被绑定到了bind的第一个参数,无论这个函数是如何被调用的。
    第一个参数‘this’使用对象,后续参数作为参数传递给函数使用
// call 和 apply
function add (b, c) {return this.a + b + c
}
var o = {a: 1};
console.log(add.apply(o, [4, 5]))  // 1+4+5 = 10
console.log(add.call(o, 4, 7))     // 1+4+7 = 12
// g使用bind绑定后,再重新对新函数g绑定,bind只会生效第一次绑定的
function add (b, c) {return this.a + b + c
}
var g = add.bind({a: 1}, 1, 2)   // 4
console.log(g())var c = g.bind({a: 10}, 1, 11)  // 4
console.log(c())

JS中this的指向相关推荐

  1. 理解js中this的指向

    彻底理解js中this的指向 JavaScript 的 this 指向问题深度解析 转载于:https://www.cnblogs.com/jeacy/p/6509616.html

  2. 简述JS中THIS的指向?

    这里是修真院前端小课堂,每篇分享文从 八个方面深度解析前端知识/技能,本篇分享的是: [简述JS中THIS的指向?] 大家好,我是IT修真院武汉分院web第16期的学员孟晨,一枚正直纯洁善良的web程 ...

  3. 彻底理解js中this的指向

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

  4. 随笔——js中的this指向,apply()与 call()

    js中apply和Math.max()函数(原文) apply() Function.apply() 是JS的一个OOP特性,一般用来模拟继承和扩展this的用途,对于上面这段代码,可以这样去理解: ...

  5. 理解js中的this指向以及call,apply,bind方法

    <script> function a(){var user = "追梦子";console.log(this.user); //undefinedconsole.lo ...

  6. JS中this的指向与改变this指向的三个方法

    目录 一.this指向的分类 1.全局函数的调用 2.对象中函数的调用 3.setTimeout与setInterval中的this 4.事件绑定中的this 5.箭头函数中的this 6.构造函数中 ...

  7. JS 中 this 的指向

    为什么要使用this? 解决的问题? 可以先通过一个例子了解下 function speak(){var name = this.nameconsole.log("Hello I am -- ...

  8. js中this的指向问题

    JS 面试题: var obj = { foo: function(){ console.log(this) } } var bar = obj.foo obj.foo() // 打印出的 this ...

  9. js中的 this指向面试题

    在普通函数中this指向window function test(){this.x=1;console.log(this); //window }; test(); 在对象下的this指向是对象本身, ...

最新文章

  1. 查找(三)——基于平衡二叉树的查找(对排序二叉树的改进)
  2. redis中的intset
  3. 风靡全网的H5究竟是什么?
  4. Spark 数据挖掘 - 利用决策树预测森林覆盖类型
  5. 更新pcb封装导入_PCB设计│网表导入的雷区,你还在踩?
  6. 前端开发:小程序--第一步
  7. 数组填充php,php数组入门教程之数组填充
  8. C++:获取图片文件信息-图片名称、类型、像素宽高
  9. Django开发微信公众平台
  10. 分布式监控系统ganglia配置文档
  11. C++基础部分_C++文件操作_文件的读取操作---C++语言工作笔记077
  12. 扩展 HashMap
  13. Bagging Classifier+Regressor
  14. java 百度地图返回坐标_Java使用百度地图API,根据地址,查询地址坐标。
  15. WES7@IIC-China
  16. 用神经网络分类根号2与根号x的数据汇总
  17. idea创建Springboot项目时,出现Error:java: 读取C:\Users\HP\.m2\repository\com\vaadin\external\google\android-js
  18. Module not found: Error: Can‘t resolve ‘core-js/fn/promise‘
  19. Unity3d程序必备的几种设计模式
  20. 【附源码】计算机毕业设计JAVA自动化办公系统

热门文章

  1. AngularJS培训教程
  2. Halcon——2022年9月(持续更)
  3. 中国电信为武汉协和搭建的5G远程会诊平台正式投入使用!
  4. Linux内存分配系统
  5. Excel--键盘操作(移动键及功能键)
  6. nabc模型_[团队项目]英语学习助手之 NABC 模型[by:姚铭]
  7. Softing WireXpert 4500 线缆认证测试仪(原赛博Psiber)助力中国新基建
  8. 基于dragonboard 410c的机械手臂(三)
  9. 在事件循环中使用暂停器
  10. unix黑客初学指导(转)