JS---this

JS—this

在这里插入图片描述

  • f(); 程序员自己调用一个函数 一个普通函数 函数中的this表示window
 let box = document.getElementById("box");
    function f() {
        console.log(this); // window
    }
    box.onclick = f();
  • 点击盒子调用g函数;不需要点击直接调用了第一个this
let box = document.getElementById("box");
    function f(){
        console.log(this);  // window
        return function g(){
            console.log(this); // 事件源
        }
    }
    box.onclick = f();
  • window打点调用函数,函数中的this表window
function k() {
        console.log(this); // window
    }
    window.k();  // window打点调用
    k(); // 程序员自己调用
  • 通过对象打点去调用一个方法,此时里面的this表示当前这个对象。
    一个方法中的this是谁,就看点前面是谁。

JS中的对象是属性的无序集合
属性:变量/方法
无序:容器中的属性没有顺序
集合:存放了N个数据

    var wc = {
        name:"wangcai",  // 叫属性  var name = "wangcai"
        age:100,   // 叫属性
        eat:function () {    // 叫方法(属性)
            console.log("eat...")
            console.log(this);
        }
    }
    wc.eat(); // 调用一个对象上的方法
  • this是谁必须等调用了才能知道
function f() {
        console.log(this);
    }
function f() {
        console.log(this.name);
    }
    let box = document.getElementById("box");
    box.name = "mybox";
    var name = "mywindow";
    var obj = {
        name:"myobj",
        f:f
    }
    f(); // mywindow
    box.onclick = f; // 点击得到mybox
    obj.f(); // myobj
    box.onmousedown = function () {
        f(); // 普通函数调用
    }

————

 var num = 10;  // VO --》 num也变成了65
    var obj = {
        num:20, // num:30
    }
    obj.fn = (function (num) {
        // EC  num:20 --》 21  --》 22  --》 23
        this.num = num*3; // window.num = 60 --》65
        num++;  //
        console.log(num)
        return function (n) {
            // EC n:5
            // EC  n:10
            this.num += n; //
            num++;
            console.log(num) // 22   23
        }
    })(obj.num)
    var fn = obj.fn;
    fn(5);
    obj.fn(10);
    console.log(num,obj.num)
    console.log(window.num)
  • 想要使用obj里的a,需要写成this.a
(function () {
        var a = 1;
        var obj = {
            a:10,  // 要使用这个a 必须是obj.a
            f:function () {
                a *= 2;
            }
        }
        obj.f();
        alert(obj.a+a)
    })();
  • 普通的函数调用
 var name = "window";
    var Wangcai = {
        name:"Wangcai",
        show:function () {
            console.log(this.name)
        },
        f:function () {
            var fun = this.show;
            fun(); // 普通函数调用
        }
    }
    Wangcai.f();
  • // 谁用了getFullName 看.前面是谁
    // .前面是obj.prop 说明getFullName中的this是obj.prop
    // 问:obj.prop中有没有fullname;
    答:访问一个对象上不存在的属性 得到und
 var fullname = "language";
    var obj = {
        fullname:"javascript",
        prop:{
            getFullName:function () {
                return  this.fullname;
            }
        }
    }
    console.log(obj.prop.getFullName()); // undefined
  • 类型错误,t是一个字符串
    在这里插入图片描述
    在这里插入图片描述
  • 代表obj
    在这里插入图片描述
  • 代表window
    在这里插入图片描述
    https://m.php.cn/article/407815.html
    【js事件里面的this代表什么?详解js中this的用法(附使用例子)-js教程-PHP中文网】
layui-this是layui框架中的一个类,用于标记当前选中的元素。一般情况下,当我们使用layui组件时,需要在多个选项卡或者按钮之间进行切换,此时就需要用到layui-this这个类。 具体实现方式如下: 1. 首先,在需要切换的元素上添加layui-this类,表示该元素是当前选中的元素。 2. 当用户点击其他选项卡或者按钮时,需要通过JavaScript代码切换当前选中的元素。 3. 切换当前选中的元素时,需要将之前的元素的layui-this类移除,然后再将新的元素添加layui-this类。 具体实现代码如下: HTML代码: ``` <div class="layui-tab"> <ul class="layui-tab-title"> <li class="layui-this">选项卡1</li> <li>选项卡2</li> <li>选项卡3</li> </ul> <div class="layui-tab-content"> <div class="layui-tab-item layui-show">选项卡1的内容</div> <div class="layui-tab-item">选项卡2的内容</div> <div class="layui-tab-item">选项卡3的内容</div> </div> </div> ``` JavaScript代码: ``` // 获取选项卡标题列表 var tabTitles = $(".layui-tab-title li"); // 给每个选项卡标题添加点击事件 tabTitles.click(function(){ // 获取当前选中的元素 var currentTab = $(".layui-this"); // 将当前选中的元素的layui-this类移除 currentTab.removeClass("layui-this"); // 将用户点击的元素添加layui-this类 $(this).addClass("layui-this"); // 获取当前选中的选项卡的索引 var index = $(this).index(); // 切换选项卡内容 $(".layui-tab-content .layui-tab-item").eq(index).addClass("layui-show").siblings().removeClass("layui-show"); }); ``` 在以上代码中,我们首先获取了选项卡标题列表,然后给每个选项卡标题添加了点击事件。当用户点击选项卡标题时,我们通过JavaScript代码切换当前选中的元素,并根据当前选中的元素的索引值,切换选项卡内容。同时,我们还需要注意将之前选中的元素的layui-this类移除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值