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 Object中间的key
Nov 18 Javascript
javascript中定义类的方法汇总
Dec 28 Javascript
JS中call/apply、arguments、undefined/null方法详解
Feb 15 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 Javascript
微信小程序 动画的简单实例
Oct 12 Javascript
jQuery实现轮播图及其原理详解
Apr 12 jQuery
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 Javascript
layer弹出层扩展主题的方法
Sep 11 Javascript
JavaScript数组及常见操作方法小结
Nov 13 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
Aug 04 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
Nov 07 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
第四节--构造函数和析构函数
2006/11/16 PHP
PHP 开源框架22个简单简介
2009/08/24 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
php eval函数用法总结
2012/10/31 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
input框中的name和id的区别
2016/11/16 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
python2.7的编码问题与解决方法
2016/10/04 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
Python列表切片常用操作实例解析
2019/12/16 Python
pandas分组聚合详解
2020/04/10 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
旧时光糖果:Old Time Candy
2018/02/05 全球购物
机关作风建设工作总结
2014/10/23 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
2019年工作总结范文
2019/05/21 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python