第十二章:第15节JavaScript对象——this

更新于:2017-11-01 15:51:11


一、this是谁


首先我们要知道“this”关键字会出现在哪?“this”关键字会出现方法(函数)里。这个方法被哪个对象调用,“this”就是调用方法的对象。JS中虽然方法也是对象,“this”指的不是方法自己。结合PHP是很好理解的。


在PHP中对象从类里获得,A类与B类如果没有继承关系,两个类的方法就不能共用。A类方法里的“$this”永远指的是实例化A类或A类子类的对象,B类亦如此。


在JS中一切都是对象,函数也是对象,一个函数会被任何对象当属性调用,函数里的“this”也就变得各种不一样。


1.png

1.png


说明:定义一个全局变量或函数,其实它们都属于“window”这个窗口对象,“window对象”是可以省略的。


分析:


17行 执行window对象“say”方法,“say”方法里的this指的是window对象。

22行 把window对象的方法“say”赋值给cat对象的“express”属性,cat对象的“express”属性值是window对象的“say”方法的对象标识符。此刻,我们也可把“say”方法看成是cat对象的方法。

23行 执行cat对象的“say”方法,“say”方法里的this此刻变成了cat对象,“this.mingzi”的值是“kitty”。


同样的示例:

1.png

1.png


二、函数对象的call方法和apply方法


call方法是一个对象冒充方法,它可以为一个函数对象指定调用者。看示例:


1.png

1.png


如果这个函数对象有参数时,可这样:


1.png

1.png


本节学习代码》》》