this指向:

  1. 如果this作为参数传入,那么this就是指向该标签。(在标签内调用时间函数,谁调用指向谁)

    < input οninput="fn(this) " >

  2. 如果直接在fn函数中写this,那么this为将根据其上下文(即他属于谁)来决定,一般指向window
    function (){
    console.log(shis);
    }
    3.点击事件onclick上的this【先获取标签元素】
    var ipt = document.querySelector(“input”);
    ipt.onclik=function(){
    console.log(this);
    }

4.构造函数中的this;(this是指当前实例化对象的具体的对象,谁调用this说在的函数,this就指向哪个实例)


5.原型方法上的this。(谁调用就指向谁)

6.对象方法中的this。
(谁调用this所在对象中的函数,就指向谁)

var obj={
name:“ls”;
fn:function(){
console.log(this.name);
}}

obj.fn();这里就是obj调用调用fn()函数,则this指向obj;

修改this指向:

修改this指向有三个方法(call,apply,bind),三个方法的第一个参数都是修改的指向的内容(对象名、对数组名等)。

1.call方法。该方法的后面可以有很多参数,除第一个指向的地方外(调用的就是指向的位置的值内容),后面的参数都是数值数字等类型依次排列(当然,这些参数也可以根据情况省略)。

eg1:

var arr = [12, 56, 48, 25, 35, 64, 964, 554, 221, 20];
var a = Math.max.call(arr, 12, 56, 48, 25, 35, 64, 964, 554, 221, 20);
console.log(a);

eg2:

obj.sex.call(obj1)  //后面的参数根据情况,方法里面有参数就写实参。
2.apply方法。该方法后面第二个参数跟一个数组或者数组的变量名

eg1:

var b = Math.max.apply(arr, arr);
console.log(b);
var c = Math.max.apply(arr, [12, 56, 48, 25, 35, 64, 964, 554, 221, 20]);
console.log(c);

eg2:
:
一样的【当需要参数的时候后面必须跟参数,想eg2没有参数就可以省略】

3.bind方法,改方法返回的是一个函数。可以给一个变量接收,然后调用给入参数(如eg1)。也可以在表达式后面直接加括号给参数(如eg2)。

eg1:

var d = Math.max.bind(arr); //返回的函数
d(12, 56, 48, 25, 35, 64, 964, 554, 221, 20);
console.log(d(12, 56, 48, 25, 35, 64, 964, 554, 221, 20));

eg2:

Math.max.bind(arr)(arr);

实例:

关于对象中的this指向和修改this指向问题。相关推荐

  1. this 指向以及修改this 指向的方法

    [this指向的学习,以及修改this指向的方法] 目录 一.this 指向:谁调用指向谁 1.全局中指向 window 2.普通函数 this 指向最后调用的(函数在声明的时候是没有 this 指向 ...

  2. python封装:隐藏对象中的属性或方法(三分钟读懂)

    封装:隐藏对象中的属性或方法 隐藏对象中的属性 隐藏:- 将对象的属性名,修改为一个外部不知道的名字 我们使用时,有特殊方法来处理获取(修改)对象中的属性 获取(修改)对象中的属性 需要提供一个get ...

  3. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  4. 微信小程序中如何使用setData修改数组或对象中的某一参数

    本人也是刚开始接触微信小程序,在微信小程序中经常会遇到修改数组中某一项的值,比如array[0]或者是对象中object.item的值.这些值在微信小程序中都需要使用一个名为setData的方法,而这 ...

  5. JAVAscript中的this指向和this指向的修改

    JAVAscript中的this指向和this指向的修改 this 关键字 一般在函数中使用,表示哪个对象执行了当前函数. 每一个函数内部都有一个关键字是 this . 函数内部的 this 只和函数 ...

  6. 「后端小伙伴来学前端了」Vue中 this.$set的用法 | 可用于修改对象中数组的某一个对象、 可用于更新数据到视图

    夜晚有明月,梦里有佳人 前言 最近在写老师布置的vue项目,真的说实话,每天真就是在百度.google.bing等各个搜索引擎之间反复横跳,不然就是掘金搜一搜.思否搜一搜,还有CSDN看一看.我的前端 ...

  7. android c 对象为空,ndk-jni中C/C++接口函数修改函数参数jobject对象成员值(数组)的有关问题...

    ndk-jni中C/C++接口函数修改函数参数jobject对象成员值(数组)的问题 现java中有个类: public class TestClass { private int nValue; p ...

  8. 微信小程序this.setData修改对象中某个属性的值

    前言 做过微信小程序的同学都知道,this.setData() 方法可以修改或者更新 data 中的值 .那不知道大家有没有遇到这么一种情况,我要修改对象中某个属性的值该怎么办呢?是不是第一想到的就是 ...

  9. 小程序,修改数组或对象中的值,通过input动态修改数组对象中的值

    data: {sourceList: [{name: '',link: '',code: '',intactLink: ''}, {name: '',link: '',code: '',intactL ...

  10. 遍历聚合对象中的元素——迭代器模式(二)

    2 迭代器模式概述 在软件开发中,我们经常需要使用聚合对象来存储一系列数据.聚合对象拥有两个职责:一是存储数据:二是遍历数据.从依赖性来看,前者是聚合对象的基本职责:而后者既是可变化的,又是可分离的. ...

最新文章

  1. 【青少年编程】【Scratch】06 侦测模块
  2. 在Sun Enterprise Server上配置SCSI磁带机
  3. css中vertical-align生效
  4. React学习:组件之间的关系、参数传递-学习笔记
  5. 应用vb编程_VB编程中的列表框综合应用讲解
  6. 断网python第三方库安装_Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包...
  7. 【maven】Controller层参数如何设置传null
  8. Android Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x10 in tid 5287 (HeapTaskDaemo
  9. winform DataGridView 文本居中
  10. LC.1056. Confusing Number, LC.246. Strobogrammatic Number
  11. python使用OpenCV批量裁剪图片
  12. 微信支付证书如何部署在linux,微信支付平台证书更新指引
  13. Java 白皮书 —— A White Paper
  14. Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇
  15. CCPC-Wannafly Comet OJ 夏季欢乐赛(2019)A——完全k叉树
  16. 苹果双卡双待买哪款合适_2020年买哪款苹果手机好?
  17. 深度解析〔程序员之所以高薪的真实原因〕,加班、秃顶只是冰山一角而已......
  18. 徘徊在神与兽间的人们
  19. mmdetection训练自己的COCO数据集
  20. Android App无法抓包的解决方案总结

热门文章

  1. win10自带sftp服务器_win10搭建sftp服务器搭建
  2. MaxScript分享|FBX骨架转Bip骨架脚本 动画无缝转换 (通吃Max9-2016版本)
  3. 【前端】静态网页和动态网页
  4. 实验四——反汇编工具的使用
  5. 微型计算机ccc认证的流程,计算机的3C认证办理以及流程
  6. FCC认证和3C认证区别
  7. 模拟退火算法的原理+应用
  8. MacBook 快捷键
  9. 【Jersey】Jersey框架介绍与使用
  10. 数字IC四大岗位分析