整理this笔记
1.在浏览器全局环境中this指向的是Window
console.log(this); //Window
2.在事件处理函数中的this,这个事件是由谁触发,this就指向谁
3.直接执行一个函数的时候在非严格模式下this指向的是Window,而在严格模式下是undefined
function fn1() {
"use strict"
console.log(this); //undefined
}
function fn2() {
console.log(this); //Window
}
fn1();
fn2(); //相当于window.fn2();
4.关于call,apply,和bind的this
他们的作用是把this的值从一个执行环境传入到另外一个执行环境
call和apply的区别只在于参数不同,call的参数后面可以是很多个的,而apply只能是俩个参数,后面一个参数是数组
function fn(x) {
console.log(this.a + x); //
}
fn.call({a:1},2);//第一个实参是对象,要改变this指向的对象,后面是你想要传的参数
如果传入的不是对象会调用相应的构造函数,进行隐式转换
function fn(x) {
console.log(this); //Number{1}
}
fn.call(1); //bind和apply也一样
bind他会返回一个新的函数,改变这个新函数的执行,而且这个函数只会执行一次bind
function fn() {
console.log(this.a); //
}
fn.bind({a:1})(); //返回一个新的函数,所以你要在执行这个返回的函数才会得到结果打印出1,不能在点bind
5.箭头函数里的this是与你定义的环境this一样的,并且使用call,apply和bind是改变不了箭头函数里的this
在全局中定义一个箭头函数,他指向的是Window
var fn = () => {
console.log(this); //Window
}
fn();
在对象里定义一个箭头函数,他跟这个对象的环境是一样的
var a = 1;
var obj = {
a:2,
fn1:() => {
console.log(this.a) //
},
fn2:function () {
console.log(this.a);//
}
}
obj.fn1();
obj.fn2();
在对象里返回一个箭头函数,他还是和对象的环境一样
var a = 1;
var obj = {
a:2,
fn1:() => {
return ()=>{
console.log(this.a);
}
},
fn2:function () {
return function(){
console.log(this.a);
}
}
}
obj.fn1()(); //
obj.fn2()(); //
6.构造函数
构造函数里没有显式return
在构造函数中如果写return一个是对象,一个是非对象
当你返回一个对象的时候,实例化的结果就是这个对象
当你返回一个非对象的时候,实例化的结果就是这个构造函数
function Fn() {
this.a = 1;
return {}; // {}
return ""; // Fn(){a:1}
}
var fn = new Fn();
console.log(fn);
7.getter和setter,setter会自动刷新改变的数据
var obj = {
a : 1,
b : 2,
get sum(){
console.log("getter...");
return this.a + this.b;
},
set sum(x){
console.log("setter...");
this.a = x*2;
this.b = x*3;
}
}
console.log(obj.sum = 4); //setter... 4
console.log(obj.a); //
整理this笔记的更多相关文章
- Deep Learning深入研究整理学习笔记五
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- 看Web视频整理标签笔记
原来观看web视频,初学html的时候发现记忆不太深刻,所以自己整理了一些笔记,加深记忆且方便忘记时查看.html的规范(遵循)1.一个html文件开始标签和结束标签<html></ ...
- geodjango七日学习笔记 (7.30整理本地笔记上传到网络)
第一天进行到现在,在开端的尾巴,想起来写一个学习笔记, 开发环境已搭好,用的是pycharm 环境是本机已有的interpreter python3.7 接下来要做的是新建一个geodjango项 ...
- 辛星整理3linux笔记,免费下载点,我希望对你有所帮助
忙乱,这是我第一次看李指出老师的视频时,,这本书是关于116页面,在csdn下载对:点我下载 ,假设左边的地址崩溃了,也能够在浏览器中输入例如以下地址然后下载:http://download.csdn ...
- [IOS 开发] NSDateFormatter的格式字符串 -- 《整理的笔记》
在ios开发中, OBjective-C中的NSDate是一个挺讨厌的类型, 自己找不到转换成字符串的类型,还得带一个NSDateFormatter的类型. 官方文档上对NSDateFormatter ...
- 整理课堂笔记 pl/sql orcale异常
1>>>>>异常错误处理 1 >预定义的异常处理 预定义说明的部分 ORACLE 异常错误对这种异常情况的处理,只需在PL/SQL块的异常处理部分,直接引用相应 ...
- iframe整理学习笔记
朋友问了一个比较怪的问题,iframe下自适应的问题,因为很少使用iframe的原因,怀着对iframe的疑惑采用了一点点实践;以下frame表示针对的iframe元素 解决的方法:对iframe进行 ...
- JavaScript匿名类整理学习笔记
以下为总结在开源的JavaScript框架中能看到很多这样语法结构(function(){})()比如我最近看的jQuery,及chediter.刚开始的时候我看到这样的结果有点奇怪,它是怎么执行的, ...
- django--没有整理,笔记
https://docs.djangoproject.com/en/2.2/常用的数据路命令:python manage.py makemigrations 数据移植准备python manage.p ...
随机推荐
- allegro画电路板
出图: 选择save all checked导出film_setup.txt: 选择replace导入film_setup.txt: 丝印层选择silkscreen,但是silkscreen和asse ...
- python------接口(get请求、post请求), 图片、歌曲下载,网页返回,上传文件
接口(get请求.post请求 --json), 图片.歌曲下载(context),网页返回(text),上传文件 import requests######################### ...
- LeetCode 696 Count Binary Substrings 解题报告
题目要求 Give a string s, count the number of non-empty (contiguous) substrings that have the same numbe ...
- 大数据量下的集合过滤—Bloom Filter
算法背景 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定.链表.树.散列表(又叫哈希表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘 ...
- 深度学习基础(二)AlexNet_ImageNet Classification with Deep Convolutional Neural Networks
该论文是深度学习领域的经典之作,因为自从Alex Krizhevsky提出AlexNet并使用GPUs大幅提升训练的效率之后,深度学习在图像识别等领域掀起了研究使用的热潮.在论文中,作者训练了一个含有 ...
- 【查阅】教你使用SQL SERVER复制
关键词:复制,复制总结,复制汇总,复制查阅 1.概念与搭建 Step1:SQL SERVER复制介绍 Step2:SQL Server 复制事务发布 Step3:SQL Server 通过备份文件初始 ...
- 002-自定义打开terminal,以及快捷键,其他程序类似,ssh管理-sshpass, Shuttle
一.利用Automator软件完成服务设定 1.使用Command+Space,打开Spotlight,搜索Automator 2.搜索到之后,双击打开,选择“服务[或快速操作]” 3.将“服务收到[ ...
- WIN7无法访问共享打印机及文件的解决办法
故障: 在网上邻居上能看到对方的电脑名字,双击进入的时候弹出问题.出现“用户账户限制”或“未授予用户在计算机上的请求登陆类型”的问题,这说明我们的局域网和网络是畅通的,问题的根源就在电脑的安全设置上. ...
- 绿色版mssql
1.安装2008绿色版,缺少对应的企业管理器,安装官方版本的提示电脑没有重启(已经重启后) 2.选择一个可用版本的mssql,2000的可以用,MSSQL2000-HaoSQL,自带企业管理器和查询器
- Mac系统下 PHP7安装Swoole扩展 教程
转载自 https://www.fujieace.com/php/php-extensions/swoole.html 今天我用的PHP版本是:PHP7.1 环境依赖: php-5.3.10 或更高版 ...