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 相关文章推荐
封装好的省市地区联动控件附下载
Aug 13 Javascript
基于JQuery的cookie插件
Apr 07 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
Dec 02 Javascript
改变状态栏文字的js代码
Jun 13 Javascript
Js与Jq获取浏览器和对象值的方法
Mar 18 Javascript
JS判断字符串变量是否含有某个字串的实现方法
Jun 03 Javascript
JavaScript闭包的简单应用
Sep 01 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
Aug 24 Javascript
jquery 验证用户名是否重复代码实例
May 14 jQuery
jQuery实现简易聊天框
Feb 08 jQuery
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 Javascript
Typescript3.9 常用新特性一览(推荐)
May 14 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 array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
详解Python如何生成词云的方法
2018/06/01 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
Django 路由控制的实现
2019/07/17 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Python递归实现打印多重列表代码
2020/02/27 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
保洁主管岗位职责
2013/11/20 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
商品陈列协议书
2014/09/29 职场文书
2014年老干部工作总结
2014/11/21 职场文书
感谢信的格式
2015/01/21 职场文书
上诉状格式
2015/05/23 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
Python Pandas知识点之缺失值处理详解
2021/05/11 Python