基于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 相关文章推荐
javascript 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
基于jQuery架构javascript基础体系
Jan 01 Javascript
js复制到剪切板的实例方法
Jun 28 Javascript
JS字符串处理实例代码
Aug 05 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
Aug 13 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
Aug 02 Javascript
jQuery 选择符详细介绍及整理
Dec 02 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 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仿ZOL分页类代码
2008/10/02 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
js数组操作学习总结
2013/11/04 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Python学生信息管理系统修改版
2018/03/13 Python
Numpy掩码式数组详解
2018/04/17 Python
在python中用url_for构造URL的方法
2019/07/25 Python
Python 函数list&read&seek详解
2019/08/28 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python yield和Generator函数用法详解
2020/02/10 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
幼儿园托班开学寄语
2014/01/18 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
2015入党自传格式范文
2015/06/26 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python