基于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 nextSibling属性和previousSibling属性概述及使用注意
Feb 16 Javascript
jQuery操作select下拉框的text值和value值的方法
May 31 Javascript
浅析JavaScript动画
Jun 10 Javascript
Javascript中的方法和匿名方法实例详解
Jun 13 Javascript
js操作table元素实现表格行列新增、删除技巧总结
Nov 18 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
微信小程序点击控件修改样式实例详解
Jul 07 Javascript
vue.js实例对象+组件树的详细介绍
Oct 20 Javascript
vue 动态绑定背景图片的方法
Aug 10 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
Oct 02 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
joomla内置的表单验证功能使用方法
2010/06/11 PHP
mac下安装nginx和php
2013/11/04 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
深入理解python多进程编程
2016/06/12 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
详解python的变量缓存机制
2021/01/24 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
英语自荐信范文
2013/12/11 职场文书
给交警的表扬信
2014/01/12 职场文书
关于人生的感言
2014/01/17 职场文书
学生会干部自荐信
2014/02/04 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
委托书格式
2014/08/01 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
抢劫罪辩护词
2015/05/21 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技