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 自动增长的文本输入框实现代码
Apr 02 Javascript
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
理解javascript中的原型和原型链
Jul 30 Javascript
JS中递归函数
Jun 17 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 Javascript
JS实现简单的浮动碰撞效果示例
Dec 28 Javascript
一步步教会你微信小程序的登录鉴权
Apr 09 Javascript
vue+django实现一对一聊天功能的实例代码
Jul 17 Javascript
ES6如何用一句代码实现函数的柯里化
Jan 18 Javascript
分享8个JavaScript库可更好地处理本地存储
Oct 12 Javascript
原生JS封装vue Tab切换效果
Apr 28 Vue.js
JS精髓原型链继承及构造函数继承问题纠正
Jun 16 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
拼音码表的生成
2006/10/09 PHP
《APMServ 5.1.2》使用图解
2006/10/23 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
使用URL传输SESSION信息
2015/07/14 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
关于php中一些字符串总结
2016/05/05 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
python实现的解析crontab配置文件代码
2014/06/30 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
总结python中pass的作用
2019/02/27 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
利用python求积分的实例
2019/07/03 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
4s客服专员岗位职责
2013/12/01 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
2014年药店工作总结
2014/11/20 职场文书
五年级学生期末评语
2014/12/26 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技