日期:2014-05-16 浏览次数:20403 次
JS有四种方法调用模式,每种模式方法内部的this指向是不同的
1.对象方法调用模式
var obj = { 'name':'zx', 'show':function () { alert(this.name); } } obj.show();
?? 这上面这个模式中this是指向obj字面对象的,所以可以访问name
2.普通方法调用模式
var name = 'hello'; function show() { alert(this.name); } show();
?? 上面的这个模式中的this是指向global对象或window对象的
3.构造方法调用模式
function show(name) { this.name = name; alert(this.name); } var s = new show('dd');
?? 上面的这个模式中的this是指向当前对象s的
4.apply调用模式
function show(name) { this.name = name; alert(this.name); } show.apply(window, ['zx']);
? 上面的这个模式中的this是指向apply的第一个入参所传的对象