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 相关文章推荐
JS获取地址栏参数的小例子
Aug 23 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
node.js中的buffer.toJSON方法使用说明
Dec 14 Javascript
easyui导出excel无法弹出下载框的快速解决方法
Nov 10 Javascript
js编写三级联动简单案例
Dec 21 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
angularjs中使用ng-bind-html和ng-include的实例
Apr 28 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
Feb 05 Javascript
vuex 项目结构目录及一些简单配置介绍
Apr 08 Javascript
JS 数组随机洗牌的实例代码
Sep 12 Javascript
jQuery ajax - getScript() 方法和getJSON方法
May 14 jQuery
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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
Linux下为不同版本python安装第三方库
2016/08/31 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Django日志及中间件模块应用案例
2020/09/10 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
python中pyplot基础图标函数整理
2020/11/10 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
CSS3 开发工具收集
2010/04/17 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
金融专业个人的自我评价
2013/10/18 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
追讨欠款律师函
2015/05/27 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python