分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

JS种this的四种用法

发布时间:2023-09-06 02:05责任编辑:郭大石关键词:暂无标签

记住以下四点:  

    1.没调用对象就指向全局对象
    2.有对象就指向调用对象
    3.用new构造就指向新对象
    4.通过 apply 或 call 或 bind 来改变 this 的所指。

1.测试一:没调用对象就指向全局对象

 ???//1.第一种:1.在一般函数方法中使用 this 指代全局对象 ???function test1() {     ???????this.x = "这是全局变量"; //如果直接调用的话this代表window ???????debugger ???    alert(window.x);   ???}   ???test1(); // 1

我们可以debugger查看断点:

 

 2.作为对象方法调用,this 指代上级对象

 ???//2.作为对象方法调用,this 指代上级对象 ???function test() {   ???????alert(this.x); ???} ???var o = {}; ???o.x = 1; ???o.m = test; ???o.m(); // 1

3.作为构造函数调用,this 指代new 出的对象(面向对象编程)

<script> ???function test(){    this.name="名字";  }  var o = new test();  alert(o.name); // 名字 ???//运行结果为1。为了表明这时this不是全局对象,我对代码做一些改变:  var name= "全局姓名";  alert(name); //全局姓名</script>

4.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数

var x = 0;  function test(){    alert(this.x);  }  var o={};  o.x = 1;  o.m = test;  o.m.apply(); //0//apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。如果把最后一行代码修改为  o.m.apply(o); //1

JS种this的四种用法

原文地址:https://www.cnblogs.com/qlqwjy/p/9362110.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved