JS学习之路
文章平均质量分 63
Eric不会敲代码
喜欢前后端编程
展开
-
JS中call和apply的实现原理
在JS中的Object对象的原型链上存在着两个函数 call和apply,其主要作用是将调用的函数的this指向目标对象即Object.call(target_ele);在我的另一篇文章中也详细阐述了call和apply的用法,这里就不多做赘述了。这里call有两个变量,一个是改变后的this目标指向的元素,另一个是向Object函数传递的参数组。实现思路:这里由于Object对象是一个函数对象,所...原创 2021-09-18 19:39:49 · 498 阅读 · 0 评论 -
JS中混合模式Mixin的实现
在继承中,处理单一继承,还有多继承,若想在JS中实现多继承,就必须用到混合模式Mixin。其原理是用过对象的追加方法assign对目标对象追加要实现的类:letData={show:function(){console.log('IamDatashowfunciton');}}letUser={getName:function(){console...原创 2021-09-17 21:27:53 · 229 阅读 · 0 评论 -
JS中的原型
什么是原型:我们可以将原型理解为Java或C#中父类的概念,但并不完全等同。例如:letarr=newArray();我们创建了一个数组arr,arr是通过new 关键字实例化的Array对象,我们称Array为arr的原形。我们打印一下arr的结构,我们发现arr的Prototype就是指向Array展开arr的原形Array我们可以发现Array的原形为Object类型,而Object之上就没有原型了所以Object的原型为null,也就是Js原生的...原创 2021-09-17 18:52:03 · 479 阅读 · 0 评论 -
JS作用域、闭包、闭包引发的内存泄漏问题
作用域:所谓作用域是指函数能够影响的范围,通常在这个范围内存在着各种常量、变量、函数等。同时在JS中还存在着作用域链,就是在一个作用域中包含着其他作用域。例如:functionNewFun(){vara=0;console.log(a);}NewFun();console.log(a);上述代码在访问变量a时,只有在NewFun方法的作用域中打印a才能正确打印值,而在NewFun函数的作用域范围外,则会提示...原创 2021-09-13 12:29:12 · 275 阅读 · 0 评论 -
apply和call以及bind的区别
在写js时我们会经常使用apply、call、bind快速完成一些重复性大的计算和操作。apply函数可以传递两个参数,第一参数是改变原有函数的this指针,使其指向第一个参数,第二个参数用来传递一个数组,数组的内容是要传递的变量,可以把理解apply函数为一些语言的继承,但与继承不同,废话少说上代码: let mydata = { user_name: '张三', user_age: 18 } function UserLoad() {原创 2021-09-12 13:46:26 · 107 阅读 · 0 评论 -
JS关于this在函数中的指向问题
说实话这个问题一开始学的时候有点迷,但是仔细思索之后就感觉非常明朗.废话不多说我们直接上代码: var name = '小二'; let user = { name: '张三', obj: function() { let user = { name: '李四', obj: function() { console.log(t原创 2021-09-12 12:53:20 · 95 阅读 · 0 评论