基于JavaScript自定义构造函数的详解说明


Posted in Javascript onApril 24, 2013

Javascript并不像Java、C#等语言那样支持真正的类。但是在js中可以定义伪类。做到这一点的工具就是构造函数和原型对象。首先介绍js中的构造函数。

Javascript中创建对象的语法是在new运算符的后面跟着一个函数的调用。如

 var obj = new Object();
 var date = new Date();

运算符new首先创建一个新的没有任何属性的对象,然后调用该函数,把新的对象作为this关键字的值传递。
var date = new Date()的伪代码的实现就是

var obj = {};

var date = Date.call(obj);

构造函数的作用就是初始化一个新创建的对象,并在使用对象前设置对象的属性。如果定义自己的构造函数,只需要编写一个为this添加属性的函数就可以了。下面的代码定义了一个构造函数:

 function Rectangle(w, h)
 {
     this.width = w;
     this.height = h;
 }

然后,可以使用new运算符调用这个函数来创建对象的实例

var rect = new Rectange(4,8);

构造函数的返回值

Javascript中的构造函数通常没有返回值。但是,函数是允许有返回值的。如果一个构造函数有一个返回值,则返回的对象成为new表达式的值。在此情况下,作为this的对象将会被抛弃。

Javascript 相关文章推荐
jquery插件之easing使用
Aug 19 Javascript
javascript开发中因空格引发的错误
Nov 08 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
Nov 07 Javascript
Javascript写入txt和读取txt文件示例
Feb 12 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
Jan 13 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
Vue中引入样式文件的方法
Aug 18 Javascript
react实现菜单权限控制的方法
Dec 11 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
Apr 13 Javascript
浅谈Ant Design Pro 菜单自定义 icon
Nov 17 Javascript
Vue CLI中模式与环境变量的深入详解
May 30 Vue.js
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 #Javascript
使用Grunt.js管理你项目的应用说明
Apr 24 #Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
Apr 24 #Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 #Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
Apr 24 #Javascript
Dom 学习总结以及实例的使用介绍
Apr 24 #Javascript
jQuery 关于伪类选择符的使用说明
Apr 24 #Javascript
You might like
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
js 学习笔记(三)
2009/12/29 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
Python笔记之facade模式
2019/11/20 Python
Python os模块常用方法和属性总结
2020/02/20 Python
python IP地址转整数
2020/11/20 Python
python 6种方法实现单例模式
2020/12/15 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
C# .NET面试题
2015/11/28 面试题
公务员培训自我鉴定
2014/02/01 职场文书
村居抓节水倡议书
2014/05/19 职场文书
工程索赔意向书
2014/08/30 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript