JS原型对象的创建方法详解


Posted in Javascript onJune 16, 2016

本文实例讲述了JS原型对象的创建方法。分享给大家供大家参考,具体如下:

使用js的prototype属性的时候,创建对象的方式是存在优先级的

1、如果方法中存在构造方法就先使用方法中的构造方法

2、如果方法中不存在构造方法则继续查找prototype原型的构造方法

<html>
<head>
<TITLE>class_obj_js_class</TITLE>
<script language=javaScript>
function a(name){
  //alert(name);//弹出的值是undefined
  //alert(null==name);//true
  if(null == name){
    this.name = name;
  }
}
function b(name){
  //alert(name);//弹出的值是undefined
  //false,this.name没有重新赋值,还是new创建的值prototype.name="TOm"
  if(null != name){
    this.name = name;
  }
}
//有参构造方法
function c(name){
  //alert(name);//弹出的值是undefined
  //如果name为true则不管后面是什么就直接返回第一个值
  //如果name为false则不管后面是什么直接返回后面的值
  this.name = name || "Jack";//如果name为空则赋值为后面的Jack
}
//无参构造方法
function d(){
}
a.prototype.name = "Tom";
b.prototype.name = "Tom";
c.prototype.name = "Tom";
d.prototype.name = "Tom";
//有参构造方法
alert(new a().name); //undefined
alert(new b().name);//Tom
alert(new c().name);//Jack
alert(new d().name);//使用无参构造方法
</script>
<body >
</body>
</html>

备注:

1、一般我们在方法中添加“对象”的属性

2、在prototype属性后面添加方法

这样做的目的是为了提高代码的复用,可以“无限”给对象添加方法,便于拓展

注意:为了提高JS的效率,要注意再使用prototype链的时候应该尽量限定在一、二级,因为浏览器会自动去循环遍历,深度太深了之后会影响效率

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery.Highcharts.js绘制柱状图饼状图曲线图
Mar 14 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
JS鼠标滚动分页效果示例
Jul 05 Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 Javascript
angularJs提交文本框数据到后台的方法
Oct 08 Javascript
jquery分页插件pagination使用教程
Oct 23 jQuery
jquery获取img的src值实例介绍
Jan 16 jQuery
一篇文章,教你学会Vue CLI 插件开发
Apr 17 Javascript
原生JS封装vue Tab切换效果
Apr 28 Vue.js
Web应用开发TypeScript使用详解
May 25 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 #Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
Jun 16 #Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 #Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 #Javascript
jQuery插件实现图片轮播特效
Jun 16 #Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 #Javascript
js学习阶段总结(必看篇)
Jun 16 #Javascript
You might like
php 静态化实现代码
2009/03/20 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
Python生成数字图片代码分享
2017/10/31 Python
python实现三次样条插值
2018/12/17 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
Django框架反向解析操作详解
2019/11/28 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
python交互模式基础知识点学习
2020/06/18 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
校本教研工作制度
2014/01/22 职场文书
卫生安全检查制度
2014/02/04 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
天地会口号
2014/06/17 职场文书
客服专员岗位职责
2015/02/10 职场文书
电影圆明园观后感
2015/06/03 职场文书
2016年元旦致辞
2015/08/01 职场文书
装修公司管理制度
2015/08/05 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS