JavaScript 函数 使用 this
■知识点
JavaScript在函数体内定义了 this关键字,this是一个指针型变量,它动态引用当前的运行环境,具体说就是调用函数的对象。调用对象是可以访问的JavaScript对象,而执行上下文的变量对象是一个不可访问的抽象概念。同时,在一个执行上下文中会存在多个可调用函数的对象,但是一个执行上下文只有一个变量对象。
■实例设计
【示例】下面的示例在全局上下文中声明一个变量X,初始化值为1,然后在obj对象内定义一个属性X,初始化值为2。使用函数f检测不同运行环境下x值的变化,以此检测this指针的引用对象。
var x = 1; //声明全局变量并初始化
var obj = {
f: function () { //定义方法 f
console. log (this.x) ; //访问当前运行环境中x属性值
},
x: 2, //定义属性X,赋值为2
};
//obj环境执行
obj.f () //2
var f1 = obj.f;
//window环境执行
fl(); //1
在上面的代码中,obj.f()表示在obj对象上调用f函数,则调用对象为obj,此时this就指向obj,this.x就等于obj.x,即返回结果为2。当把obj.f赋值给变量fl,然后在全局上下文中调用fl函数,则f函数体的运行环境在全局上下文中执行,此时this就指向window,this.x就等于window.x,即返回结果为1。
点击加载更多评论>>