Javascript:面向对象之静态、公有、私有、特权对象
分类:Pure Javascript, 学习笔记 发表时间:2009年09月10日 字体大小:12号14号
虽然我对jQuery库的应用比较熟悉,但对他的内部实现机制还是有许多懵懂之处。于是乎,近日开始学习Javascript面向对象编程。在此学习过程中,会整理一些笔记发布在我的博客上,也提供给和我一样不理解Javascript面向对象编程的朋友一些小小的帮助。
今天就对面向对象编程的几个对象类型做一个实例总结。
1. 静态对象
首先创建一个隐式的Function对象并赋给了myConstructor变量,在创建完对象后,通过添加静态的属性和方法来补充该myConstructor实例化后的对象,代码如下:
1 2 3 4 5 6 7 8 9 10 | var myConstructor = function() { //some code } // -----此处的name属性和alertName方法都属于静态对象 myConstructor.name = "hiro"; myConstructor.alertName = function() { alert(this.name); } // -----此处的()起到了执行代码的作用 myConstructor.alertName(); |
2. 公有对象
创建一个显式的Function对象,然后实例化对象,通过向实例化后的对象中的原型prototype添加属性和方法来产生公有的属性和方法,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | function myConstructor() { //some code } var obj = new myConstructor(); alert(obj.name); // -----此处通过javascript的原型prototype来添加公有对象 myConstructor.prototype.name = "hiro"; myConstructor.prototype.alertName = function() { alert(this.name); } // -----此处的()起到了执行代码的作用 obj.alertName(); |
3. 私有对象、特权对象
创建一个显式的Function对象,在该对象内部定义的变量或方法为私有对象,而在该兑现内部通过this.来引用的属性和方法为特权方法,之所以称为“特权”,是因为特权对象可以访问私有对象,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function myConstructor(message) { // -----此处的name和alertName为私有对象,只能在函数对象内部访问 var name = "hiro"; function alertName(name) { alert(name); } // -----此处的myMessage和alertMessage为特权方法,它既可以被函数对象外部访问,也可以访问函数内部对象的私有对象 this.myMessage = message; this.alertMessage = function() { // -----此处访问了函数对象内部的name和alertName私有对象 alertName("ihiro.org"); alert(this.myMessage + ", " + name); } alertName(name); } var obj = new myConstructor("A object is created"); alert(obj.myMessage); obj.alertMessage(); |
以上语言性描述纯属个人理解,有理解不到位的地方给我提示出来,谢谢!
- 上一篇: WordPress:高亮管理员的留言信息
- 下一篇: 游戏:3D动作冒险类游戏《迷你忍者》
技术帖子支持
你的速度特忒快了点吧,刚发布就来留言了!
飘到这里来了,一直挺欣赏技术博客的,虽然自己不是技术型的,呵呵…
学习一下h
技术贴,慢慢看~
你的文章订阅好像有问题,怎么不托管你的feed呢?
有什么问题呢?我有Google Reader订阅正常的啊!!
JS是非常的强大
hiro博客的代码显示插件是什么的,貌似很好用哦。
面向对象思想现在好hot~我的c++还有现在的java都是~
我用的是wp_codebox插件,很好用的!!