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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
浅析JavaScript中的同名标识符优先级
Dec 06 Javascript
七个很有意思的PHP函数
May 12 Javascript
javascript执行环境及作用域详解
May 05 Javascript
详解JavaScript常量定义
Jan 03 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
Spring Boot/VUE中路由传递参数的实现代码
Mar 02 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
Mar 08 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 Javascript
JSONP原理及应用实例详解
Sep 13 Javascript
uin-app+mockjs实现本地数据模拟
Aug 26 Javascript
微信小程序用户登录和登录态维护的实现
Dec 10 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 email邮箱正则
2008/10/08 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
javascript function、指针及内置对象
2009/02/19 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
JS+CSS实现电子商务网站导航模板效果代码
2015/09/10 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
Python实现将xml导入至excel
2015/11/20 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
DBA的职责都有哪些
2012/05/16 面试题
大学生如何写自荐信
2014/01/08 职场文书
2014年情人节活动方案
2014/02/16 职场文书
研修心得体会
2014/09/04 职场文书
2015年信访工作总结
2015/04/07 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
golang slice元素去重操作
2021/04/30 Golang
AngularJS实现多级下拉框
2022/03/25 Javascript
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers