如初的博客🥝
call、apply、bind的区别
call()和apply() 介绍 这两个方法都是函数对象的方法,需要通过函数对象来调用。 当函数调用call()和apply()时,函数都会立即执行。 都可以用来改变函数的this对象的指向。 第一个参数都是this要指向的对象(函数执行时,this将指向这个对象),后续参数用来传实参。 显式绑定this JS提供的绝大多数函数以及我们自己创建的所有函数,都可以使用call 和apply方法。 它们的第一个参数是一个对象。因为你可以直接指定 this 绑定的对象,因此我们称之为显式绑定。 例1: 12345678910function foo() { console.log(this.a);}var obj = { a: 2};// 将 this 指向 objfoo.apply(obj); //打印结果:2 第一个参数的传递 1、thisObj不传或者为null、undefined时,函数中的this会指向window对象(非严格模式)。 2、传递一个别的函数名时,函数中的this将指向这个函数的引用。 3、传递的值为数 ...
iTerm2 + OhMyZsh + agnoster 搭建
推荐链接: https://www.jianshu.com/p/246b844f4449
iconMoon
iconMoon.md https://www.cnblogs.com/chinabin1993/p/8185398.html https://blog.csdn.net/web_harry/article/details/70310597 https://blog.csdn.net/qq_37261367/article/details/80012320
whistle网络抓包
手机设置代理 连接好指定的wifi后,点击那个wifi里的设置,将「代理」那一项,设置为手动,然后输入ip(电脑上的ip)、端口号(8899)。然后就可以通过电脑上的whistle工具,查看手机的网页请求。 注意,要保证手机和电脑在同一个网络下。 捕获和拦截https请求 whistle安装证书后,可以拦截 https 请求。但是,我现在又不想拦截https请求了,该怎么卸载证书呢? 我发现,证书无法卸载,正确的操作是: 上图中,把红框部分,去掉勾选,就不捕获https了。谢谢azh童鞋。 参考链接: Android 手机如何设置http代理? 使用 Whistle 对 iOS HTTPS 进行抓包 移动端调试神器:eruda 手机连接代理时,如何看console.log的日志信息? 现在,代码里有console.log,如果是在电脑浏览器上看,可以直接在控制台查看console.log的内容。但是,如果手机连接代理,在手机上打开网页的话,要怎么查看console.log的内容呢?具体做法如下: (1)在 whistle中,新建一个名叫Eruda H5的代理,代理 ...
this
this this的作用 this可以帮我们简化很多代码。比如xiaoming.name、xiaoming.age可以直接写成this.name、this.age。 特别是当我们不知道一个对象是什么,或者这个对象没有名字但又很想调用它的时候,就会使用到this对象。 举例: 遍历DOM对象,绑定click事件,调用当前点击的对象的id,而不是所有对象的id。 代码: 123456789101112131415161718192021222324252627282930313233343536373839404142<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" <title>Document</title> <style> div { w ...
创建对象和继承
创建对象的几种方式 通过Object 12345678910111213141516171819202122232425262728293031323334353637<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>01_Object构造函数模式</title></head><body><!--方式一: Object构造函数模式 * 套路: 先创建空Object对象, 再动态添加属性/方法 * 适用场景: 起始时不确定对象内部数据 * 问题: 语句太多--><script type="text/javascript"> /* 一个人: name:"Tom", age: 12 */ // 先创建空Object对象 var p = new Object() ...
浅拷贝和深拷贝
浅拷贝 对于对象或数组类型,当我们将a赋值给b,然后更改b中的属性,a也会随着变化。 也就是说,a和b指向了同一块堆内存,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝。 深拷贝 那么相应的,如果给b放到新的内存中,将a的各个属性都复制到新内存里,就是深拷贝。 也就是说,当b中的属性有变化的时候,a内的属性不会发生变化。 参考链接: 深拷贝与浅拷贝的实现(一) javaScript中浅拷贝和深拷贝的实现
作用域和闭包
前言 面试问题: 说一下对变量提升的理解 说明this的几种不同的使用场景 创建10个<a>标签,点击的时候弹出来对应的序号 如何理解作用域 实际开发中闭包的应用 涉及到的知识点: 执行上下文 this 作用域 作用域链 闭包 执行上下文 执行上下文主要有两种情况: 全局代码: 一段<script>标签里,有一个全局的执行上下文。所做的事情是:变量定义、函数声明 函数代码:每个函数里有一个上下文。所做的事情是:变量定义、函数声明、this、arguments PS:注意“函数声明”和“函数表达式”的区别。 全局执行上下文 在执行全局代码前将window确定为全局执行上下文。 (1)对全局数据进行预处理:(并没有赋值) var定义的全局变量==>undefined, 添加为window的属性 function声明的全局函数==>赋值(fun), 添加为window的方法 this==>赋值(window) (2)开始执行全局代码 函数执行上下文 在调用函数, 准备执行函 ...
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面