码迷,mamicode.com
首页 > 移动开发 > 详细

JS -- call/apply

时间:2015-08-09 20:16:52      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

JS – call/apply

JS – call/apply

function f() {
    this.x = 333;               // // this 指向 window
}
f();
alert(x);
var obj = {x: 999, y: 888, f: function() {
    alert(this.x);
}};
obj.f();                        // 999


var obj2 = {x: 111};
obj2.f = obj.f;
obj2.f();                       // 111
function func() {
    alert(this.name);           // this 指向的是 window
}

var dog = { name: ‘a dog‘ };
dog.func();                     // 错误, dog 里面没有 func 方法

var name = ‘I am window‘;
func.call(dog);                 // 输出 a dog

// 输出 I am window
func.call();
func.call(window);
function f(val) {
    alert(this.name + ‘ val is ‘ + val);
}

function Dog(name) {
    this.name = name;
}
var d = new Dog(‘a dog‘);
f.call(d, ‘abc‘);
// d 作为参数进入 f 就变成了里面的 this, abc 作为参数 传入 f(val) 中

f.apply(d, Array(‘a dog‘));     // apply 和 call 类似, 不过他呼叫的是参数是数组, 对于需要 arguments 的时候游泳

JS -- call/apply

标签:

原文地址:http://www.cnblogs.com/sunznx/p/4716162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!