javascript中的new使用


Posted in Javascript onMarch 20, 2010

所以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 相关文章推荐
二行代码解决全部网页木马
Mar 28 Javascript
用JavaScript显示随机图像或引用
Apr 21 Javascript
深入理解JQuery keyUp和keyDown的区别
Dec 12 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
Jun 09 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
Dec 19 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
Oct 19 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
es6中Promise 对象基本功能与用法实例分析
Feb 23 Javascript
使用js获取身份证年龄的示例代码
Dec 11 Javascript
javascript 操作select下拉列表框的一点小经验
Mar 20 #Javascript
js 格式化时间日期函数小结
Mar 20 #Javascript
window.location.hash 属性使用说明
Mar 20 #Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 #Javascript
js 强制弹出窗口代码研究-又一款代码
Mar 20 #Javascript
js 数组克隆方法 小结
Mar 20 #Javascript
vs2003 js文件编码问题的解决方法
Mar 20 #Javascript
You might like
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
javascript学习网址备忘
2007/05/29 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
Python中用max()方法求最大值的介绍
2015/05/15 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
SQL Server面试题
2016/10/17 面试题
父亲追悼会答谢词
2014/01/17 职场文书
初三学生个人自我评定
2014/04/06 职场文书
就职演讲稿范文
2014/05/19 职场文书
优秀教师单行材料
2014/12/16 职场文书
五年级作文之成长
2019/09/16 职场文书
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS