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 isEmptyObject判断是否为空对象的函数
Feb 14 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
Javascript Ajax异步读取RSS文档具体实现
Dec 12 Javascript
js获取指定日期周数以及星期几的小例子
Jun 27 Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 Javascript
JavaScript实战之带收放动画效果的导航菜单
Aug 16 Javascript
Angular如何在应用初始化时运行代码详解
Jun 11 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
Dec 29 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 08 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 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中Session的概念
2006/10/09 PHP
php实现对象克隆的方法
2015/06/20 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
sqlalchemy对象转dict的示例
2014/04/22 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python中的协程深入理解
2019/06/10 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
奥地利网上书店:Weltbild
2017/07/14 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
中专自荐信
2013/10/13 职场文书
开办饭店创业计划书
2013/12/28 职场文书
怎么写自荐书范文
2014/02/12 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
小学生倡议书范文
2014/05/13 职场文书
校园之声广播稿
2015/08/18 职场文书
班主任寄语2016
2015/12/04 职场文书
小学班级管理心得体会
2016/01/07 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python
服务器SVN搭建图文安装过程
2022/06/21 Servers