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 一次处理多个ajax请求的代码
Sep 02 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
js获取网页高度(详细整理)
Dec 28 Javascript
深入理解Javascript动态方法调用与参数修改的问题
Dec 10 Javascript
Jquery Post处理后不进入回调的原因及解决方法
Jul 15 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
关于JavaScript和jQuery的类型判断详解
Oct 08 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
layui 实现自动选择radio单选框(checked)的方法
Sep 03 Javascript
使用xampp将angular项目运行在web服务器的教程
Sep 16 Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 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学习笔记之面向对象
2014/11/08 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
上班离岗检讨书
2014/01/27 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
法制宣传月活动方案
2014/05/11 职场文书
学生安全承诺书
2014/05/22 职场文书
工程承包协议书范本
2014/09/29 职场文书
好媳妇事迹材料
2014/12/24 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
家长会后的感想
2015/08/11 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android