关于JavaScript那些事
2014-11-23 23:53
211 查看
Javascript 通常情况下都被误解了,有人说是有各种bug,有人说支持面向对象很垃圾,还有人说是c和self ONS的产物->可笑
JavaScript是一门很优秀的语言,脱胎于lisp,又轻量级的支持了数据封装,走duck type路线,hash literal表示对象,这也就自然支持了反射机制;
JavaScript支持的原型链很大程度上倾向于组合而不是继承,从而实现了模块间的解耦。
JavaScript是一门很优秀的语言,脱胎于lisp,又轻量级的支持了数据封装,走duck type路线,hash literal表示对象,这也就自然支持了反射机制;
JavaScript支持的原型链很大程度上倾向于组合而不是继承,从而实现了模块间的解耦。
JavaScript常用的面向对象封装模式:
var Obj = function (name) { this.name = name; this.flag = new Array('A', 'B'); } Obj.prototype = { showName : function () { alert(this.name); } } var obj1 = new Obj(); var obj2 = new Obj(); obj1.flag.push('C'); alert(obj1.flag); // A,B,C alert(obj2.flag); //A,B alert(obj1.showName()); ----------------------------cut-off-rule-------------------------------- var Obj = function () { function initialize (name) { this.name = name; this.flag = new Array('A', 'B'); } initialize.prototype = { showName : function () { alert(this.name); }, showFlag : function () { alert(this.flag); } } return initialize; }(); var obj1 = new Obj('aaa'); var obj2 = new Obj('bbb'); obj1.showName(); // aaa obj2.showName(); // bbb obj1.showFlag(); // AB
JavaScript闭包:获取函数上下文信息,也常用来数据封装
var db = (function() { // 创建一个隐藏的object, 这个object持有一些数据 // 从外部是不能访问这个object的 var data = {}; // 创建一个函数, 这个函数提供一些访问data的数据的方法 return function(key, val) { if (val === undefined) { return data[key] } // get else { return data[key] = val } // set } // 我们可以调用这个匿名方法,返回这个内部函数,它是一个闭包 })(); // 利用函数作用域创建私有空间 db('x'); // 返回 undefined db('x', 1); // 设置data['x']为1 db('x'); // 返回 1 // 我们不可能访问data这个object本身,但是我们可以设置它的成员
相关文章推荐
- 关于Javascript 那些事
- JavaScript中,关于new的那些事
- 【web开发】关于Javascript事件注册的那些事
- 关于JavaScript继承的那些事
- javaScript 关于 == 那些事
- 关于javascript基础那些事。。。
- 关于JavaScript限制字数的输入框的那些事
- (原创)关于Javascript的应用技巧
- 关于javascript的两个重要的应用
- javascript写的关于静态页面获取URL传递参数的函数[原创]
- 关于WEB交互式设计,JavaScript以及AJAX的一点心得
- 关于javascript中parseInt函数的一个所谓的bug
- 关于在vs2003下对脚本程序的调试 如 :javascript
- 关于vbscript 与 javascript如何传递变量(包括服务器端与客户端)
- [收藏]Javascript关于日期的各种技巧和方法总结[欢迎补充]
- 关于javascript的小东东
- javascript 关于表单的一些validation
- [Javascript]关于在ASP.NET环境中调用梅花雨的日历控件出错的解决办法
- JavaScript 关于动态添加表格行问题
- javascript写的关于静态页面获取URL传递参数的函数[原创]