this(只能在函数体内部使用)

2018-10-12  本文已影响0人  小美人鱼最可爱

原理:

var obj={

    foo:function(){}

    };//函数适用于任何环境

    var foo=obj.foo;

    obj.foo()

    foo()

分析:

var obj={foo:5};

var obj={ foo : function ( ) { } };

总结:this 指的是函数运行时所在的环境

            变量的值也就取决于所处的环境

用法:

纯粹的函数调用:

var x=1;

function test(){

cosole.log(this.x);

}

test(); //1

作为对象方法的调用:(this指代上级对象)

function test(){

console.log(this.x)

}

var obj={};

obj.x=1;

obj.m=test;

obj.m(); // 1

作为构造函数调用(this指代新对象)

var x=2;

function test(){

this.x=1;

}

var obj=new test();

obj.x; // 2

作为apply调用(apply():改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象,this指代第一个参数)

var x=0;

function test(){

console.log(this.x);

}

var obj={};

obj.x=1;

obj.m=test;

obj.m.apply() //0 (obj.m.apply(obj); //1)

上一篇 下一篇

猜你喜欢

热点阅读