基于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 相关文章推荐
var与Javascript变量隐式声明
Sep 17 Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
使用jQuery重置(reset)表单的方法
May 05 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
Sep 15 Javascript
vue自定义指令实现v-tap插件
Nov 03 Javascript
node.js中EJS 模板快速入门教程
May 08 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
JavaScript中的类型检查
Feb 03 Javascript
JS如何实现基于websocket的多端桥接平台
May 14 Javascript
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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
解析php中的escape函数
2013/06/29 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
Vue.js 表单控件操作小结
2018/03/29 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
Python随机生成手机号、数字的方法详解
2017/07/21 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
python是否适合网页编程详解
2019/10/04 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
总经理任命书
2014/03/29 职场文书
听课评语大全
2014/04/30 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
如何Python使用re模块实现okenizer
2022/04/30 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python