一.this 指针的理解

借鉴参考http://www.cnblogs.com/kongxy/p/4581223.html

this 是 js 的关键字,代表函数运行时,自动生成的一个内部对象。只能在函数内部使用。
this 指针至于函数的执行环境有关与声明环境无关

二.this 指针的四种调用方式

1.方法调用模式
当函数为一个对象属性的时候被称为方法, 当一个方法被调用时 this 绑定到这个对象上。如果被调用表达式有一个提取动作 点或者是[ ] 那么这样的就称之为方法调用模式。

 <script>let name = "window"let obj1 = {name: "obj1",getname: function () {return this.name}}console.log(obj1.getname()) //obj1
//this会指向方法所在对象的name属性</script>

2.函数调用模型
通过函数来调用 this,一般是绑定的是全局对象 window。

let name = "window";
function getname() {console.log(this.name);
}
getname(); //window

单独一个函数直接调用的话,归类于 window 对象。

3.构造对象模型
在函数面前加一个 new,命名一个新的对象,那 this 就会指向这个新的对象,并且吧 name 属性赋值给这个新对象

function getname() {this.name = "123";
}
let obj2 = new getname();
console.log(obj2); //Object { name: "123" }

使用 new 创建一个新对象,this 指向该对象

4. bind,call,apply
都可以改变 this 指针
格式都是.bind/apply/call(目标对象,属性值)
区别:bind只改变不执行,apply传入的为数组

function hello(name) {// this:执行上下文,程序的运行环境// this当前是window,全局this.name = name;// window.name=nameconsole.log(this);
}
hello("123");
const obj = {name,
};
hello.bind(obj, "admin")(console.log(hello));
//name:admin
hello.call(obj, "111");
//name:111
hello.apply(obj, [222, 333]);
//222

JavaScript this指针的理解相关推荐

  1. javascript this指针指向?

    前言 理解javascript的指针就需要先了解js的执行环境和作用域!执行环境的定义了变量或函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有一个与之关联的变量对象,环境中定义的所有的变 ...

  2. javascript中 (function(){})();如何理解?

    javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环 ...

  3. 64位程序怎么判断指针是否有效_C 语言指针怎么理解?

    注: 看完这篇一定会让你理解透彻指针的本质 是的,这一篇的文章主题是「指针与内存模型」 说到指针,就不可能脱离开内存,学会指针的人分为两种,一种是不了解内存模型,另外一种则是了解. 不了解的对指针的理 ...

  4. 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解

    1.2017前端面试题及答案总结 |掘金技术征文 "金三银四,金九银十",用来形容求职最好的几个月.但是随着行业的饱和,初中级前端er就业形势不容乐观. 行业状态不可控,我们能做的 ...

  5. 指向数组的指针的理解

    指向数组的指针的理解 开发工具与关键技术:Visual Studio.C++ 作者:张国军 撰写时间:2019年05月03日 数组和指针是两种不同的类型,数组具有确定数量的元素,而指针只是一个标量值. ...

  6. javascript匿名函数的理解

    复制粘贴 [color=red]点评:请记住,关键点是理解javascript的函数概念(参考w3cshool对函数的描述,搜索关键字:ECMAScript 函数).以及()的运算的理解. 比如:va ...

  7. javascript callback函数的理解与使用

    最近做的一个项目中用到了callback函数,于是就研究了下总结下我对javascript callback的理解 首先从callback的字面翻译"回调" 可以理解这是一个函数被 ...

  8. javascript之闭包深入理解(一)

    曾经在开始学习javascript的时候,很是不理解闭包的概念.今天想对它详细的剖析. 在说清楚闭包之前,必须先清楚作用域链. 作用域链 我们知道,执行环境是js中最为重要的一个概念.执行环境定义了变 ...

  9. JavaScript创建对象:深入理解编程原理

    在学习JavaScript的过程中,经常被它的对象系统(Object,Function,Prototype)搞的云里雾里的,感觉这些东西如果不搞清楚,后续的JavaScript学习也会不扎实,所以,下 ...

最新文章

  1. mac 启动mysql多实例_实践:mysql单机多实例部署(mac)
  2. 动网论坛新手详尽教程
  3. seo模拟点击软件_百度快排软件原理分析
  4. AT指令:常见的AT命令
  5. 单目相机内参标定的问题
  6. MySQL中leftjoin和rightjoin的区别
  7. ArmLinux BOOTLOADER全程详解
  8. 【QT学习之路】QThread的简单使用
  9. html颜色自定义器,可自定义颜色的jQuery颜色拾取器插件
  10. 外文参考文献去哪找和下载?
  11. 评价模型总结——个人学习笔记(二)
  12. 松翰单片机SN8P2711AD实现AD转换的C语言程序例子
  13. 获取手机机身和外置SD卡存储容量的方法
  14. 获取gridview当前选中行的内容
  15. 深信服上网行为管理——仅用户访问某个特定网站,其他行为拒绝策略
  16. Matlab函数trainingOptions参数解析
  17. 软件磁盘阵列(software raid)
  18. Android玄铁剑之TextView之跑跑马灯
  19. python ptz相机 角度_资深程序员来告诉你python为什么越来越火
  20. [UE4]基于粒子系统的简单拖尾(Trail)

热门文章

  1. ui设计师职业规划怎么写_UI设计师该如何做职业规划呢?
  2. 数据挖掘二:数据整合
  3. location.href 与 location.search
  4. 电子信息工程就业方向及薪资标准
  5. 最美人生在旅途——《念奴娇 • 过锦阳关》 Mars_VV原创
  6. 10分钟学会QQ开放登录
  7. 沙特SASO 2927:2019照明产品能效,性能及标签要求
  8. php 发送邮箱的stmp服务器
  9. 2022年,我的年终总结
  10. php批量生成百度加密地址,用php改写百度mp3地址的加密模式