javascript中的new
来源:互联网 发布:海尔三网电视网络升级 编辑:程序博客网 时间:2024/06/01 10:48
http://www.cnblogs.com/leo-penguin/archive/2010/03/20/1689048.html
javascript是基于原型(Prototype based)的面向对象的语言,这点不同于我们熟悉的.NET,Java语言,是基于类模式(Class based)。
所以javascript中没有类的概念。理解这一点很重要,很多javascript教程为了让读者更容易理解,会套用他们常用的类模式中的概念,这 样反而让大家产生歧义。
先进段代码,
function employee(){ this.name=""; this.dept="";}employee.prototype={ say:'hello'}var p = new employee();
这段代码,我们会经常用到,其中new关键字最容易引起混淆的一处。这里的new和.NET中的所做的工作不同。
我们可以这样理解javascript中用new操作创建实例的过程,new关键字以employee()为模板创建了一个新的对象,它复制了employee构造器中的成员变量(也可以理解为,将p对象作为参数传入构造函数中,并且应用函数中所有this的成员变量),同时继承了构造器的原型。
我们用代码模拟new的过程。
//var p = new Object() is also correct.var p ={};employee.apply(p);p.__proto__ = employee.prototype;
__proto__ 是 javascript对象实例一个内部属性,它指向构造函数即employee的prototype属性,当对象查找某一成员变量时,例如p.say,首先查找自己的成员属性,如果找到了,返回值,如果没找到,就去调用__proto__来检查原型链,当前例子,也就是在employee.prototype中找到say成员。
- javascript中的new function
- javascript中的new
- javascript中的new
- javascript中的new
- javascript 中的 new 操作
- 理解 JavaScript 中的 new
- javascript中的new
- Javascript中的new
- javascript中的new操作符
- JavaScript中的new的作用
- JavaScript中的new-面向对象实现原理
- javascript 中的 new Date() 的使用总结
- JavaScript中的new的使用方法与注意事项
- Javascript中的new做了什么?
- JavaScript中的new-prototype面向对象实现原理
- 通过javascript中的new认识基于原型的面向对象。
- JavaScript中的new的使用方法与注意事项详解
- 理解javascript中的function与new Function的区别
- 职业与事业的区别
- Java: ThreadLocal用法
- windows安装HTK3.4.1
- extern "C"
- blocks(闭包)学习笔记
- javascript中的new
- vim插件latex-suite的使用入门
- poj2485
- ETM早教管理软件单店部署架构攻略
- jmail 发送邮件jmail组件注册成功仍然报错,报8007005
- 控制字符串长度(中英文保持一致) .
- 学习方法
- HDU 1233 还是畅通工程
- The type net.sf.hibernate.Session cannot be resolved.