基于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 相关文章推荐
jqPlot Option配置对象详解
Jul 25 Javascript
深入讲解AngularJS中的自定义指令的使用
Jun 18 Javascript
jquery实现鼠标悬浮停止轮播特效
Aug 20 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
提高Web性能的前端优化技巧总结
Feb 27 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
vue项目强制清除页面缓存的例子
Nov 06 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
Vue组件为什么data必须是一个函数
Jun 11 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 Javascript
JavaScript模拟实现网易云轮播效果
Apr 04 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常用的文件操作函数经典收藏
2013/04/02 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
javascript实现的一个随机点名功能
2014/08/26 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
js实现简单的验证码
2015/12/25 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
详解如何webpack使用DllPlugin
2018/09/30 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
python的re模块应用实例
2014/09/26 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
使用python为mysql实现restful接口
2018/01/05 Python
python如何为创建大量实例节省内存
2018/03/20 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
python遍历小写英文字母的方法
2019/01/02 Python
Python二维码生成识别实例详解
2019/07/16 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
国贸专业的职业规划范文
2014/01/23 职场文书
大学生作弊检讨书
2014/02/19 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python