浅谈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 相关文章推荐
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
Jan 08 Javascript
js 程序执行与顺序实现详解
May 13 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
Mar 07 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
jQuery zTree插件使用简单教程
Aug 16 jQuery
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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
PDO::quote讲解
2019/01/29 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
jQuery参数列表集合
2011/04/06 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
python学习教程之使用py2exe打包
2017/09/24 Python
wxpython实现图书管理系统
2018/03/12 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
四风对照检查材料范文
2014/09/27 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
python实现手机推送 代码也就10行左右
2022/04/12 Python