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 EasyUI API 中文文档 - Tree树使用介绍
Nov 19 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
深入浅析JavaScript中数据共享和数据传递
Apr 25 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
Vuejs第十三篇之组件——杂项
Sep 09 Javascript
浅谈js原生拖放
Nov 21 Javascript
JS SetInterval 代码实现页面轮询
Aug 11 Javascript
解决vue接口数据赋值给data没有反应的问题
Aug 27 Javascript
vscode 开发Vue项目的方法步骤
Nov 25 Javascript
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
JavaScript变量提升和严格模式实例分析
Jan 27 Javascript
使用refresh_token实现无感刷新页面
Apr 26 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微信开发之上传临时素材
2016/06/24 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
微信小程序实现美团菜单
2018/06/06 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
python实现Adapter模式实例代码
2018/02/09 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
python实现字符串和数字拼接
2020/03/02 Python
python环境下安装opencv库的方法
2020/03/05 Python
python GUI计算器的实现
2020/10/09 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
正规的求职信范文分享
2013/12/11 职场文书
迟到早退检讨书
2014/02/10 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
求职信格式范文
2015/03/19 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技