
js复盘
一只极度渴望成长的Giser
我想好了,这辈子就做gis了
展开
-
结合Vue重新总结一下JS中this的指向问题
结论:普通函数和匿名函数中的this指向是在运行时候确定的,谁调用了该函数,那么this就指向谁。箭头函数中的this指向的是父级作用域中的this的指向,或者说,该箭头函数在哪定义的,那么箭头函数中this就指向哪块作用域。在严格模式下,即’use strict’模式下,全局作用域下的普通函数和匿名函数中的this指向undefine。以下例子显示了在各种情况下this的指向:var a = 0;console.log(this.a); //this指向windowvar a = 0;原创 2022-03-23 10:28:44 · 1580 阅读 · 0 评论 -
重新理解JS变量提升和闭包
1. 变量提升例子:console.log(a); //打印undefinevar a = 3;上面例子中的打印结果是undefine,并没有报错。我们通常写的var a=0; 这一句代码实际是包含了两个操作过程,首先是声明了一个变量a,然后是对a进行了赋值操作。JS中对于使用var声明的变量具有变量提升的作用,所以变量a的声明被提升到了当前作用域的最顶端。最终经过编译后的代码顺序实际是这样的:var a;//undefineconsole.log(a);a = 3;JS在ES6之前,只原创 2022-03-18 14:27:54 · 489 阅读 · 0 评论 -
JS中实现深拷贝的两种方式
1. 通过递归的方式实现深拷贝function deepClone(obj){ let objClone = Array.isArray(obj) ? [] : {}; if (obj && typeof obj === 'object') { for(let key in obj){ if (obj[key] && typeof obj[key] === 'object'){ objClone[key] = deepClone原创 2022-03-09 16:02:30 · 714 阅读 · 2 评论 -
论“跨域产生后,浏览器到底发出请求没有?“
跨域问题原创 2021-12-05 19:51:31 · 638 阅读 · 0 评论 -
JS继承实现方式梳理
ES5中定义类在ES5里面定义类,就是写一个方法,这个方法就是该类的构造函数,用来初始化实例对象/** * @description: 定义Person类 * @param {*} name * @param {*} age * @return {*} */ function Person(name,age){ //定义属性 thi原创 2021-10-24 13:42:08 · 140 阅读 · 0 评论