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 简便实现页面元素数据验证功能
Mar 24 Javascript
JavaScript中字符串(string)转json的2种方法
Jun 25 Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 Javascript
基于JS实现翻书效果的页面切换样式
Feb 16 Javascript
jquery 手势密码插件
Mar 17 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
微信小程序签到功能
Oct 31 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 Javascript
基于JavaScript实现轮播图效果
Jan 02 Javascript
JavaScript实现筛选数组
Mar 02 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时间戳与日期之间转换的实例介绍
2013/04/19 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
PHP微信API接口类
2016/08/22 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
js面向对象的写法
2016/02/19 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
婴儿地球:Baby Earth
2018/12/25 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
通信工程专业毕业生推荐信
2013/12/25 职场文书
先进党支部事迹材料
2014/01/13 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
见习报告格式要求
2014/11/04 职场文书
小班上学期个人总结
2015/02/12 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
Python集合set()使用的方法详解
2022/03/18 Python