浅谈Javascript的静态属性和原型属性


Posted in Javascript onMay 07, 2015

文章给各位介绍Javascript的静态方法和原型方法一个例子,如果大家对于Javascript的静态方法和原型方法不了解可以和小编一起来看看。 一段代码,了解静态方法和实例方法:

<script>
    //对象构造函数
    function Atest(name){
      //私有属性,只能在对象构造函数内部使用
      var className = "Atest";
      //公有属性,在对象实例化后调用
      this.name = name;
      //对象方法
      this.hello = function(){
        alert(this.name);
        alert(this.msg());//使用原型方法扩充的方法可以在类内部使用
        alert(this.sex);//使用原型方法扩充的属性可以在类内部使用
        alert(Atest.age);//静态属性调用时格式为[对象.静态属性]
      }
    }
    //类方法 (实际是静态方法直接调用) 位置:Person类的外部 语法格式:类名称.方法名称 = function([参数...]){ 语句行; }
    Atest.Run = function(){
      alert("我是类方法 Run");
    }
 
 
    //原型方法
    Atest.prototype.msg = function(){
      alert("我的名字是:"+this.name);//如果原型方法当作静态方法直接调用时,this.name无法被调用
    }
 
    //公有静态属性 在类的外部
    Atest.age = 20;//公有静态属性不能使用 【this.属性】,只能使用 【对象.属性】 调用
 
    //原型属性,当作是类内部的属性使用【this.原型属性】,也可以当成公有静态属性使用【对象.prototype.原型属性】
    Atest.prototype.sex = "男";
 
    Atest.Run(); //类方法也是静态方法,可以直接使用 【对象.静态方法()】
    Atest.prototype.msg();//原型方法当成静态方法使用时【对象.prototype.方法()】 
    alert(Atest.prototype.sex);//原型属性当作静态属性使用时【对象.prototype.方法()】
    var a = new Atest("zhangsan");//对象方法和原型方法需要实例化对象后才可以使用
    a.hello();//对象方法必须实例化对象
    a.msg();//原型方法必须实例化对象
    alert(a.age)://错误,公有静态属性只能使用 【对象.属性】调用
 
    //ps:尽量将方法定义为原型方法,原型方法避免了每次调用构造函数时对属性或方法的构造,节省空间,创建对象快.
  </script>
Javascript 相关文章推荐
javascript编程起步(第七课)
Jan 10 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
Aug 07 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
Oct 09 Javascript
代码触发js事件(click、change)示例应用
Dec 13 Javascript
table insertRow、deleteRow定义和用法总结
May 14 Javascript
浅析AngularJS中的生命周期和延迟处理
Jun 18 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
Aug 18 Javascript
jQuery animate easing使用方法图文详解
Jun 17 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 Javascript
JavaScript 九种跨域方式实现原理
Feb 11 Javascript
如何解决js函数防抖、节流出现的问题
Jun 17 Javascript
ECMAScript5(ES5)中bind方法使用小结
May 07 #Javascript
JS中获取函数调用链所有参数的方法
May 07 #Javascript
jQuery中animate动画第二次点击事件没反应
May 07 #Javascript
js实现鼠标滑过文字链接色彩变化的效果
May 06 #Javascript
JS实现文字掉落效果的方法
May 06 #Javascript
DOM 高级编程
May 06 #Javascript
js获得当前系统日期时间的方法
May 06 #Javascript
You might like
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
js+xml生成级联下拉框代码
2012/07/24 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
python随机生成库faker库api实例详解
2019/11/28 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
Python celery原理及运行流程解析
2020/06/13 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
超市开业庆典策划方案
2014/05/14 职场文书
信访工作经验交流材料
2014/05/23 职场文书
预防煤气中毒方案
2014/06/16 职场文书
班级文化标语
2014/06/23 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python