JavaScript 对象冒充

对象作用域

this 的补充。

function f() {
    console.log(this.n)
}

var Obj = {
    n:1,
    f:f
}

// 当前作用域下是没有 this.n 这个值的
console.log(this.n) // undefined

// 所以在当前作用域下执行 f 函数,结果等于 undefined
f() // undefined

对象冒充

伪装执行环境。

function f(a, b) {
    console.log(this.n + a + b)
}

var Obj = {
    n:1,
    f:f
}

// 把 f 函数执行的作用域修改成 Obj,那么就能读取到 Obj 内部 n 的值
f.call(Obj, 1, 2) // 2

// 效果同于 call,区别在于函数的传参
f.apply(Obj, [1, 2]) // 2
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程