JavaScript中new语句
来源:互联网 发布:淘宝助理连打只能2单 编辑:程序博客网 时间:2024/06/07 13:22
Javascript是世界上第一个被大量使用的支持Lambda函数的语言,本质上属于与Lisp同类的函数式编程语言。但是当前世界,90%以上的程序员都是使用面向对象编程。为了靠近主流,Javascript做出了妥协,采纳了类的概念,允许根据类生成对象。
类是这样定义的:
var Cat = function (name) { this.name = name; this.saying = 'meow' ; }
然后,再生成一个对象
var myCat = new Cat('mimi');
这种利用函数生成类、利用new生成对象的语法,其实非常奇怪,一点都不符合直觉。而且,使用的时候,很容易忘记加上new,就会变成执行函数,然后莫名其妙多出几个全局变量。所以,建议不要这样创建对象,而采用一种变通方法。
Douglas Crockford给出了一个函数:
Object.beget = function (o) { var F = function () {}; F.prototype = o ; return new F; };
创建对象时就利用这个函数,对原型对象进行操作:
var Cat = { name:'', saying:'meow' }; var myCat = Object.beget(Cat);
对象生成后,可以自行对相关属性进行赋值:
myCat.name = 'mimi';
阅读全文
0 0
- JavaScript中new语句
- 关于javascript中关于new
- Javascript中new的疑惑
- javascript 中new的含义
- JavaScript中new与this
- javascript中new的用法
- javascript中new关键字详解
- javascript中switch语句
- javascript中new的模拟实现
- 转:javascript 中 new 的作用
- JavaScript中,关于new的那些事
- javascript中new Date()的浏览器兼容性问题
- javascript中new Date()的浏览器兼容性问题
- javascript中new Date()的浏览器兼容性问题
- javascript中new Date()的浏览器兼容性问题
- Javascript中new Date的坑
- javascript中new Date()的浏览器兼容性问题
- Javascript中new Date的坑
- Codeforces Round #428 (Div. 2)-贪心&模拟-B. Game of the Rows
- Qt中QAction在菜单栏、工具栏、状态来上的使用及添加快捷键
- JavaScript 得到上周时间范围,本月时间范围
- 计算机视觉基础
- 记flume部署过程中遇到的问题以及解决方法(持续更新)
- JavaScript中new语句
- 支持向量机 Support Vector Machines (SVM)
- DOM及其扩展
- 六种三栏式布局
- css sprite新手教程
- [翻译]How to Interpret the Erlang Crash Dumps
- 使用Java文件选择器去获取文件、图片
- Apache POI Excel固定(冻结)单元格
- 【C#学习】运算符