基于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 相关文章推荐
滚动条响应鼠标滑轮事件实现上下滚动的js代码
Jun 30 Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
Apr 01 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
Vue组件库发布到npm详解
Feb 17 Javascript
node 命令方式启动修改端口的方法
May 12 Javascript
使用D3.js+Vue实现一个简单的柱形图
Aug 05 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
Jan 08 Javascript
基于vue、react实现倒计时效果
Aug 26 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
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
python self,cls,decorator的理解
2009/07/13 Python
python实现socket端口重定向示例
2014/02/10 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
Python list与NumPy array 区分详解
2019/11/06 Python
python 循环数据赋值实例
2019/12/02 Python
Python列表操作方法详解
2020/02/09 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
python实现横向拼接图片
2020/03/23 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
办公室文员工作职责
2014/01/31 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
人事主管岗位职责
2015/02/04 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书