美文网首页
JavaScript中的this对象

JavaScript中的this对象

作者: o0ther | 来源:发表于2018-03-25 16:54 被阅读0次

在JavaScript中,this对象是在运行时基于函数的执行环境决定的。this总是指的是调用函数的那个对象

1.一般的函数调用

下面这个例子在全局环境中调用函数,因此this指向全局对象Global。

function f1(){
    alert(this);
}
f1()//alert提示:[object Window]

2.在闭包中使用this

在闭包中使用this,此时this仍指的是全局对象,因此下面例子会输出1

let a = 1;
function f1() {
    let a = 0;
    return function () {
        return this.a;
    }
}
console.log(f1()());//1(非严格模式下输出1,否则会输出undefined);

每个函数在被调用时都会自动取得两个变量:this和arguments。内部函数在搜索这两个变量时,只会搜索到其活动变量为止。因此永远不可能反问到外部函数的变量。

3.使用call()和apply()函数改变this的指向

call和apply实际上是为了动态改变this而出现的,当一个对象中没有某个方法,而其他对象中有,我们就可以借助call和apply用其他对象的方法来操作。

var obj1 = {
            a : "knife",
            tools : function() {
                console.log("I use "+this.a);
            }
 };
 var obj2 = {
            a : "bow"
 };
 obj1.tools();//I use knife
 obj1.tools.call(obj2);//I use bow

emmmmm
暂时就这么多。

相关文章

  • JavaScript对象

    概念 JavaScript 中的对象:JavaScript 中的对象其实就是生活中对象的一个抽象。JavaScri...

  • js的prototype

    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解...

  • JavaScript - prototype理解

    Javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解...

  • 网络编程(十八) JavaScript(8)

    一、 JavaScript内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 、内置对...

  • 原型与原型链

    javascript中的每个对象都有一个内置的属性prototype,Javascript中对象的prototyp...

  • RxJs学习笔记3--js基础知识--对象

    JavaScript对象 定义对象 空格和换行不是必须的: 个人总结: JavaScript中对象用 { } 来创...

  • 复习javascript--(2)--常用语法

    本文主要是对javascript常用的语法进行笔记 1.JavaScript 对象 javascript中的对象主...

  • JavaScript面向对象的几个概念

    JavaScript_Object_Oriented proto成员 数组对象在JavaScript引擎中的对象模...

  • JavaScript|对象

    对象: JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。在 JavaScript 中,...

  • JS-day05-5.3

    内置对象 JavaScript中的对象分为3种:内置对象、浏览器对象、自定义对象 JavaScript 提供多个内...

网友评论

      本文标题:JavaScript中的this对象

      本文链接:https://www.haomeiwen.com/subject/lyghcftx.html