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 相关文章推荐
JavaScript中的Location地址对象
Jan 16 Javascript
最近项目写了一些js,水平有待提高
Jan 31 Javascript
js导航菜单(自写)简单大方
Mar 28 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
Jun 12 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
简单谈谈JavaScript的同步与异步
Dec 31 Javascript
js实现仿qq消息的弹出窗效果
Jan 06 Javascript
实例详解ECMAScript5中新增的Array方法
Apr 05 Javascript
JS原生轮播图的简单实现(推荐)
Jul 22 Javascript
在vue-cli项目中使用bootstrap的方法示例
Apr 21 Javascript
vue计算属性get和set用法示例
Feb 08 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 06 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/10/10 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
js相册效果代码(点击创建即可)
2013/04/16 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现调用其他python脚本的方法
2014/10/05 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
python实现飞机大战小游戏
2019/11/08 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
学校校庆演讲稿
2014/05/22 职场文书
病人慰问信范文
2015/02/15 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
事业单位工作人员岗前培训心得体会
2016/01/08 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL