悟透JavaScript之放下对象 -- 2

接  悟透JavaScript之放下对象 -- 1

 

WhoAmI.call(BillGates); //直接将BillGates 作为this,调用WhoAmI。输出:I'm B

ill Gates of object

WhoAmI.call(SteveJobs); //直接将SteveJobs 作为this,调用WhoAmI。输出:I'

m Steve Jobs of object

BillGates.WhoAmI.call(SteveJobs); //SteveJobs 作为this,却调用BillGates

WhoAmI 方法。输出:I'm Steve Jobs of object

SteveJobs.WhoAmI.call(BillGates); //BillGates 作为this,却调用SteveJobs

WhoAmI 方法。输出:I'm Bill Gates of object

WhoAmI.WhoAmI = WhoAmI; //WhoAmI 函数设置为自身的方法。

WhoAmI.name = "WhoAmI";

WhoAmI.WhoAmI(); //此时的this WhoAmI 函数自己。输出:I'm WhoA

mI of function

({name: "nobody", WhoAmI: WhoAmI}).WhoAmI(); //临时创建一个匿名对象并

设置属性后调用WhoAmI 方法。输出:I'm nobody of object

从上面的代码可以看出,同一个函数可以从不同的角度来调用,this 并不一定是函数本身所属的对象。

this 只是在任意对象和function 元素结合时的一个概念,是种结合比起一般对象语言的默认结合更加灵

活,显得更加超然和洒脱。

JavaScript 函数中,你只能把this 看成当前要服务的这个对象。this 是一个特殊的内置参数,根据this 参数,您可以访问到这个对象的属性和方法,但却不能给this 参数赋值。在一般对象语言中,方法体代码中的this 可以省略的,成员默认都首先是自己的。但JavaScript 却不同,由于不存在自我

当访问这个对象时,this 不可省略!

JavaScript 提供了传递this 参数的多种形式和手段,其中,象BillGates.WhoAmI()SteveJobs.

WhoAmI()这种形式,是传递this 参数最正规的形式,此时的this 就是函数所属的对象本身。而大多数

情况下,我们也几乎很少去采用那些借花仙佛的调用形式。但只我们要明白JavaScript 的这个自我与其

他编程语言的自我是不同的,这是一个放下了的自我,这就是JavaScript 特有的世界观。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值