js高级函数中的this

news/2024/7/10 23:16:23 标签: javascript, es6, 前端

函数中的this是一个引用变量,那个实例对象调用的函数,this就指向这个实例

javascript"><script>
    function fun(name) {
        //添加一个name属性让name属性等于传过来的name参数
        this.name = name
        this.setname = function (name) {
            this.name = name
        }
    }
    fun("tom")//和window.fun("tom")是一样的
    console.log(window.name);
</script>

在这里插入图片描述
在这里插入图片描述

javascript"><script>
    function fun(age) {
        //添加一个name属性让name属性等于传过来的name参数
        this.age = age
    }
    const a=new fun(18)
    console.log(a.age);
    console.log(window.age);
</script>

在这里插入图片描述
在这里插入图片描述
不要再用name调试 这样的话window也是有值的 因为第一次已经在window上添加这个name属性所以不能用name调试

箭头函数没有自己的 this,当在内部使用了 this时,它会指向最近一层作用域内的 this


http://www.niftyadmin.cn/n/1371683.html

相关文章

js高级 原型对象 显性原型对象与隐性原型对象 原型链

原型对象&#xff0c;是用来解决构造函数在创建实例的时候&#xff0c;防止重复执行所导致的性能的降低(这里主要指占用内存)&#xff0c;来为服用带来方便 如果在构造函数上添加一个方法 当你每次调用这个构造函数的时候都会调用里面的方法如果用原型对象的话就不用反复调用 每…

函数原型实例关系图

总的来说就是这样 关于Function 1.所有的函数都是Function的实例对象 也就是说所有的 函数.protoFunction.prototype 关于object 1.所有的函数的原型对象都是object实例对象 &#xff08;但Object不满足&#xff09; 也就是说 函数.prototype.protoobject.prototype&#xff…

原型属性 instanceof

原型属性 1.查找对象的属性时&#xff0c;会自动到原型链中查找 2.设置对象的属性时不会查找原型链&#xff0c;如果当先对象没有此属性&#xff0c;直接添加此属性并设置其值 3.方法一般定义到原型两种属性一般通过构造函数定义再对象本身上 就是当在构造函数中定义一个方法时…

变量提升与函数提升 执行上下文

当函数或者js执行时会进行预处理操作 变量提升 预处理时候会进行变量的预处理也就是变量的提升&#xff0c;就是把变量提取出来赋值为underfind 函数提升 预处理时会把函数执行&#xff08;函数提升&#xff09; this指向window 块级变量优先于全局变量 当执行函数时也…

执行上下文栈 执行上下文栈面试题

执行上下文栈 <script> let a; function fun(a){this.aafunction fun2(){console.log("我是fun2");} }a10 fun(10) console.log(a); </script>进行预处理的时候会预处理函数&#xff0c;函数里面定义了b&#xff0c;但函数预处理和window预处理一样会把…

作用域 作用域链 作用域与上下文的区别

作用域 全局作用域和函数作用域 这个b和c就是在全局作用域里面打印a和b实在全局作用域里面函数作用域里面的访问不到全局作用域的变量可以访问到 在函数作用域里面可以访问他的函数作用域离得变量和他上一级的变量 访问只能访问本作用域的和他上一级的作用域里面的数据

闭包 js高级

闭包就是一个作用域能访问另一个函数的作用域的变量 有点像数据通信 <script>function a() {let a 5function b() {console.log(a);}b()}a() </script>这里就发生了闭包b函数访问了a函数的变量 函数外想要访问函数内部的数据 <!DOCTYPE html> <html la…

var、let、const 的区别 以及for循环 let和var输出不一样问题

var、let、const 的区别 一、var声明的变量会挂载在window上&#xff0c;而let和const声明的变量不会 var a 100; console.log(a,window.a); // 100 100let b 10; console.log(b,window.b); // 10 undefinedconst c 1; console.log(c,window.c); // 1 undefined 1 2 3 4 5 …