悟透JavaScript之放下对象 -- 2
来源:互联网 发布:淘宝精细化运营 编辑:程序博客网 时间:2024/05/22 17:22
接 悟透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特有的世界观。
- 悟透JavaScript之放下对象 -- 2
- 悟透JavaScript之放下对象 -- 1
- 悟透JavaScript-放下对象
- 悟透JavaScript - 放下对象
- 《悟透JavaScript》学习札记六之放下对象
- 《悟透javascript》学习笔记:六、放下对象
- 悟透JavaScript(李站老师)-放下对象
- 悟透JavaScript之构造对象 (2)
- 悟透JavaScript之对象素描
- 放下
- 放下
- 放下
- 放下
- 放下
- 放下
- javascript对象之javascript数组
- 悟透JavaScript之奇妙的对象
- 悟透JavaScript之构造对象(1)
- 【VC++积累】之四、动态链接库
- UVA10970大块巧克力
- 悟透JavaScript之放下对象 -- 1
- UVA11044-寻找Nessy
- POJ 3352 Road Construction POJ 3177Redundant Paths(Tarjan缩点)
- 悟透JavaScript之放下对象 -- 2
- 一些PHP性能优化
- 带头结点的单链表
- 数据库设计之我见
- 关键词:用JAVA开发CORBA应用实例
- 怎么才能把windows里的文件复制到虚拟机的linux中去
- Qt HTML CSS颜色对照表
- C中的格式化输入输出
- 嵌入式开发需要具备的