摘要:文章目的是总结下这个事情,如果没有考虑周全,遗漏某一条,请过路的留言写,我在补上。类的实例在函数中的一般指向和中括号里面的第一个参数是谁就指向谁。输出说明指向的是输出,说明指向的是箭头函数中的,就是定义是所在的对象,而不是使用时所在的对象
文章目的是总结下这个事情,如果没有考虑周全,遗漏某一条,请过路的留言写,我在补上。
在自制行函数中,this --> window
let obj = { name: "fung", getName: ~function(params) { // this-->window console.log(this); //window }() };
给元素的某个事件绑定方法,当事件触发执行,对应方法的时候,方法中的this一般是指当前操作的元素本身。
let box = document.getElementById("box"); box.onclick = function () { // this -- > box console.log("box", this); //box对象 }
当方法执行时,看方法的前面有没有点,如果有点,点前面是谁,this就是指向谁;如果没有点一般都是指向window
var objTest = { name: "fung", getName: function () { console.log("objTest", this); }, timeout: function(params) { setTimeout(function(){ //this --> window console.log("setTimeout", this); }, 1000); } }; objTest.getName(); //this --> objTest let fn = objTest.getName; fn(); // this --> window
在构造函数模式中,方法体中出现的this是当前类的一个实例。
function Person(name, age, sex) { //this --> person(Person类的实例person) this.name = name; this.age = age; this.sex = sex; console.log("Person", this); } let person = new Person("fung", 19, "femail");
在setTimeout函数中的this一般指向window
objTest.timeout();
call和apply中括号里面的第一个参数是谁this就指向谁。
let oldObjec = { name: "oldObjec", age: 1000, getName: function() { console.log("oldObjec getName", this.name); } }; let newObjec = { name: "newObjec", age: 00, getAge: function () { console.log("newObjec getAge", this.age); } }; let name = "window"; oldObjec.getName.call(newObjec); //输出newObjec,说明this指向的是newObjec newObjec.getAge.call(oldObjec);//输出1000, 说明this指向的是oldObject
箭头函数中的this,就是定义是所在的对象,而不是使用时所在的对象
var age = 111; function getName () { setTimeout(() => { console.log("arrowObjec getName", this.age); }, 1000); } getName.call({age: 2000});
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/98863.html
总结call,apply,bind方法的理解使用和区别。 call,apply,bind这三个方法在JavaScript中是用来改变函数调用的this指向。那么改变函数this指向有什么用呢?我们先来看一段代码 var a= { name:harden, fn:function () { console.log(this.name); } } var b =...
摘要:例如通过,调用时强制把它的绑定到上。箭头函数问题箭头函数体内的对象就是定义时所在的对象,而不是使用时所在的对象,固定不变。 刚入门javascript,关于this的学习,花了自己挺多的时间,做了比较多的功课,看了一篇又一篇的文章,也看了一些书籍,今天就结合看的那些东西总结下自己所学到的东西,方便留着以后回看,进一步的学习,这篇文章会不断的更新,不断的更新自己的想法,现在还是一个入门不...
摘要:普通函数调用函数在全局作用域下运行在非严格模式下,指向全局对象,在严格模式下,会变成。使用来调用函数,或者说发生构造函数调用时,会自动执行下面的操作。即构造函数的指向它实例化出来的对象。 JavaScript中的this实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用。 先来列举一下都有哪些函数调用方式: 普通函数调用 对象方法调用 call()、apply()...
摘要:构造函数模式这种方法创建自定义的构造函数,从而自定义对象类型的属性和方法。借用构造函数在子类型构造函数的内部调用超类型构造函数,通过和方法来实现。 JavaScript中没有类的概念,它不是严格意义上的面向对象语言,而是基于对象(Object-based)的编程语言。下面是读《JavaScript高级程序设计(第三版)》的学习笔记,总结一些常用的创建对象和继承的方法。 一、创建对象 1...
阅读 2092·2019-08-29 16:53
阅读 2664·2019-08-29 16:07
阅读 1994·2019-08-29 13:13
阅读 3232·2019-08-26 13:57
阅读 1303·2019-08-26 13:31
阅读 2411·2019-08-26 13:22
阅读 1193·2019-08-26 11:43
阅读 2060·2019-08-23 17:14