基于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 相关文章推荐
Extjs优化(二)Form表单提交通用实现
Apr 15 Javascript
复制js对象方法(详解)
Jul 08 Javascript
不用一句js代码初始化组件
Jan 27 Javascript
js判断鼠标位置是否在某个div中的方法
Feb 26 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
JS小数运算出现多为小数问题的解决方法
Jun 02 Javascript
jquery插件uploadify多图上传功能实现代码
Aug 12 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
Nov 30 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
react+antd 递归实现树状目录操作
Nov 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
第十四节 命名空间 [14]
2006/10/09 PHP
用PHP制作静态网站的模板框架(二)
2006/10/09 PHP
下载文件的点击数回填
2006/10/09 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
JavaScript面象对象设计
2008/04/28 Javascript
JS 控制非法字符的输入代码
2009/12/04 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
js Calender控件使用详解
2015/01/05 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python pymongo模块常用操作分析
2018/09/01 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Python定义函数实现累计求和操作
2020/05/03 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
技能比赛获奖感言
2014/02/14 职场文书
策划总监岗位职责
2014/02/16 职场文书
销售顾问岗位职责
2014/02/25 职场文书
员工旷工检讨书
2015/08/15 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
MySQL sql模式设置引起的问题
2022/05/15 MySQL
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS