87,993
社区成员
发帖
与我相关
我的任务
分享function WhoAmI() //定义一个函数WhoAmI
{
alert("I'm " + this.name + " of " + typeof(this));
};
var BillGates = {name: "Bill Gates"};
BillGates.WhoAmI = WhoAmI; //将函数WhoAmI作为BillGates的方法。
BillGates.WhoAmI(); //此时的this是BillGates。输出:I'm Bill Gates of object
({name: "nobody", WhoAmI: WhoAmI}).WhoAmI(); //临时创建一个匿名对象并设置属性后调用WhoAmI方法。输出:I'm nobody of object
1.小括号括起来是强制运算,让引擎识别是个对象
如果没有小括号{name: "nobody", WhoAmI: WhoAmI}.XXX 引擎会把{}解析成块语句而不是对象就报错
所以下面强制运算符都可以
-{name: "nobody", WhoAmI: WhoAmI}.WhoAmI();
+{name: "nobody", WhoAmI: WhoAmI}.WhoAmI();
void{name: "nobody", WhoAmI: WhoAmI}.WhoAmI();
typeof{name: "nobody", WhoAmI: WhoAmI}.WhoAmI();
2.你的问题表示你来对象基本概念都不知道
WhoAmI: WhoAmI这个不就是WhoAmI方法? 相当于
WhoAmI: function(){
alert("I'm " + this.name + " of " + typeof(this));
};