- 博客(7)
- 收藏
- 关注
原创 this 指向
this总是(非严格模式下)指向一个对象,而据体指哪个对象是在运行时基于函数的执行环境动态绑定的,而非被函数声明时的环境。当函数不作为对象的属性被调用,而是以普通函数的方式,this总是指向全局对象(在浏览器中,通常是Window对象)(1)、构造函数调用, 此时 this 指向 实例对象当函数作为对象的方法被调用时,this指向该对象。//这里new改变了this指向,将this由window指向Person的实例对象people。(3)、通过事件绑定的方法, 此时 this 指向 绑定事件的对象\。
2023-06-24 15:44:31
23
原创 改变this指向
函数内部中的 this 指向谁,不是在函数定义时决定的,而是在函数第一次调用并执行的时候决定的。作用:函数被借用时,会立即执行,并且函数体内的this会指向借 用者或调用者。结果:普通函数的this指向window,利用call方法将this指向了obj。作用:函数被借用时,会立即执行,并且函数体内的this会指向借用者或调用者。//经过call,this指向obj,obj开始有name ,age属性。//经过call,this指向obj,obj开始有name ,age属性。
2023-06-24 15:43:54
25
原创 谈谈对原型的理解
例如,如果我们有一个对象 `person`,它的原型是 `Object.prototype`,那么当我们访问 `person.toString()` 时,JavaScript 会先在 `person` 对象中查找 `toString` 方法,如果找不到,就会沿着原型链向上查找,直到在 `Object.prototype` 中找到该方法为止。当我们访问一个对象的属性或方法时,如果该对象本身没有该属性或方法,JavaScript 就会沿着该对象的原型链向上查找,直到找到该属性或方法为止。
2023-06-24 15:38:58
90
原创 构造函数详解
所以我们执行 `console.log(o1 === o2.sayHi)` 的到的结果是 `false`显然是可以的,我们的到的两个对象中都有 `sayHi` 这个函数也都可以正常调用。和普通函数一样,只不过调用的时候要和 new连用,不然就是一个普通函数的调用。**每次new的时候,函数内部的this都是指向当前这次的实例化对象。构造函数内部的 this,由于和 new 连用的关系,是指向当前实例对象的。我们得到的两个对象都有自己的成员 **name** 和 **age**
2023-06-24 15:34:29
47
原创 节流 和 防抖 的封装
我们上面的代码,一旦用户有任何的输入,check 函数就会执行,用户想要输入abc,每个字符串输入的时候我们就会执行一次check函数,没有必要,我们等用户输入abc以后再执行就可以了。如果短时内内容 input 事件又被执行了,就会执行第一行代码,执行刚刚启动的定时器。节流就是 一段代码或者函数 短时间内多次被执行,我们让他有规律的执行,比如,fn10秒被执行了100次,通过节流可以糖让fn每1秒执行1次。// 重新开启定时器--定时器到期以后执行fn函数--等于延迟执行了fn函数。
2023-06-24 15:29:19
35
原创 函数柯里化
核心思想是把多参数传入的函数拆成单参数(或部分)函数,内部再返回调用下一个单参数(或部分)函数,依次处理剩余的参数。只传递给函数一部分参数来调用它,让它返回一个函数去处理剩余的参数。这个过程就叫做柯里化。为了减少参数的重复,可以把函数curry化。它只是闭包的一种应用。
2023-06-24 15:26:00
28
原创 闭包浅见解
js中的变量,函数在执行的时候都会被加载到栈中,执行完毕在弹出,当使用闭包的时候, 函数执行完成后,不会弹出,因为其他的地方还要加载其内部变量.在函数外部能读取到其他函数内部变量的函数。通俗的说就:一个内部函数引用了外部函数的变量,外部函数形成了一个闭包。2:设置私有变量(内部函数调用外部函数的局部变量,此时,这个局部变量就会变成内部函数的私有变量)充当一个摄像头,函数外部可以访问函数内部的变量,减少变量的声明,避免造成污染.闭包的经典写法就是;一个函数返回了一个新的函数。
2023-06-24 15:20:40
22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人