使用call方法改变this的指向


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>function sayName(fullName, age) {console.log(this)console.log(fullName, age)}var obj1 = {name: '张康'};// 使用 call() 方法调用 sayName() 函数,并将 sayName 函数中的 this 的指向改变成了 obj1sayName.call(obj1, '康博', 20)</script>
</body></html>

使用apply方法改变this的指向


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>function sayName(fullName, age) {console.log(this)console.log(fullName, age)}var obj1 = {name: '张康'};// 使用 apply() 方法调用 sayName() 函数,并将 sayName 函数中的 this 的指向改变成了 obj1sayName.apply(obj1, ['康博', 20])// apply() 与 call() 都是用来改变 this 的指向的,唯一的区别是传参的方式不一样。</script>
</body></html>

使用bind方法改变this的指向


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>function sayName(fullName, age, xiaoming) {console.log(this)console.log(fullName, age, xiaoming)}var obj1 = {name: '张康'};// bind() 方法并不会帮我调用 sayName() 函数,但是它会返回一个绑定好 this 以及参数的新函数// 可以用来绑定 this// 可以用来绑定形参的值var foo = sayName.bind(obj1, '康博', 20)foo('赵胤禛');</script>
</body></html>

JS-面向对象-改变This的指向---使用call方法改变this的指向 / 使用apply方法改变this的指向 / 使用bind方法改变this的指向相关推荐

  1. 9.JS面向对象补充

    JS面向对象补充 本文章来源于王红元老师(coderwhy)的 JS高级课程 附上链接:https://ke.qq.com/course/3619571 谁能拒绝一个*100%好评还加课的老师呢 目录 ...

  2. 简单粗暴地理解js原型链–js面向对象编程

    简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...

  3. 对js面向对象的理解

    转自:http://www.cnblogs.com/jingwhale/p/4678656.html js面向对象理解 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP ...

  4. JS面向对象,创建,继承

    很开心,最近收获了很多知识,而且发现很多东西,以前理解的都是错的,或者是肤浅的,还以为自己真的就get到了精髓,也很抱歉会影响一些人往错误的道路上走,不过这也告诉了我们,看任何一篇文章都不能盲目的去相 ...

  5. js面向对象与PHP面向对象总结

    js面向对象: 1.什么是对象? 对象:任何实体都是对象,拥有属性和方法两大特征 属性:描述事物的特点: 方法:实物拥有的行为: 2.在JS里 Person.name="zhang" ...

  6. js面向对象模拟京东商城图片放大效果

    js面向对象模拟京东商城图片放大效果 JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的 OOP 语言能力.本文简单介绍一下使用JavaScript面向对象思想模拟京东商城鼠标悬浮 ...

  7. JS 面向对象编程、原型链、原型继承(个人学习总结)

    一.面向对象 1. 面向对象 是所有语言 都有的一种编程思想,组织代码的一种形式 基于对象的语言:JS语言 面向对象的语言:c++ java c# 2. 面向对象 3大特征 封装:将重用代码封装到函数 ...

  8. 悟透JavaScript(理解JS面向对象的好文章)

    引子 编程世界里只存在两种基本元素,一个是数据,一个是代码.编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力. 数据天生就是文静的,总想保持自己固有的本色:而代码却天生活泼,总想改变这个 ...

  9. js:面向对象编程,带你认识封装、继承和多态

    本文首发于我的个人网站:http://cherryblog.site 周末的时候深入的了解了下javascript的面向对象编程思想,收获颇丰,感觉对面向对象编程有了那么一丢丢的了解了~很开森 什么是 ...

  10. 关于JS面向对象、设计模式、以及继承的问题总结

    1.对象:JS中万物皆对象,它是一个泛指 类:对象的具体的细分 (物以类聚,人与群分.具有相同属性和方法的实例的一个集合总称) 实例:某一个类别中具体的一个事物 对象是一个抽象的概念,类似于我们的自然 ...

最新文章

  1. 指针 混用 迭代器_对比 C++ 和 Python,谈谈指针与引用
  2. php 小炒花生,炒花生的做法_炒花生怎么做_炒花生的家常做法
  3. python守护进程进程池_Python进程池非守护进程?
  4. Informatica:当好大数据的清道夫
  5. Linux设置默认Python版本
  6. 产品经理必备知识之如何用CREATE模型对用户进行行为分析
  7. 【USACO】奶牛抗议 树状数组+dp
  8. 主线程如何等待多线程完成 返回数据_多线程基础体系知识清单
  9. AI算法连载19:统计之最大熵算法
  10. Lua语言模型 与 Redis应用
  11. ASP.NET防止用户多次登录的方法
  12. Windows按键翻译
  13. python3 模板库 好用_关于3个Python模板库的比较
  14. spssχ2检验_案例实践:SPSS分层卡方检验
  15. html图像缩小失真,图像放大和缩小不失真的方法!
  16. 单细胞测序分析及单细胞转录组
  17. Seaweedfs的安装和使用--研究
  18. ui设计范畴,ui设计分为哪几类
  19. Think Python读书笔记及课后习题---【前三章】
  20. linux和乌班图和麒麟系统,UbuntuKylin 和麒麟系统是两支不同渠道的系统

热门文章

  1. linux tempfile指令学习
  2. Jquery 获取 radio选中值(转)
  3. NoHttp开源Android网络框架1.0.0之架构分析
  4. Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...
  5. Web前端开发:SQL Jsp小项目(一)
  6. Android 第三方
  7. 【转】WPF 给DataGridTextColumn统一加上ToolTip
  8. Delphi 之 工具栏组件(TToolBar)
  9. Mac OSX操作系统安装和配置Zend Server 6教程(1)
  10. 用xargs处理带空格文件名