浅谈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 相关文章推荐
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
Jan 07 Javascript
限制文本框输入N个字符的js代码
May 13 Javascript
JavaScript实现多个重叠层点击切换效果的方法
Apr 24 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
Node.js中的process.nextTick使用实例
Jun 25 Javascript
你所未知的3种Node.js代码优化方式
Feb 25 Javascript
JavaScript学习笔记之创建对象
Mar 25 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
jQuery中show与hide方法用法示例
Sep 16 Javascript
angularjs中的$eval方法详解
Apr 24 Javascript
详解基于node的前端项目编译时内存溢出问题
Aug 01 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 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
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
php实现微信公众号无限群发
2015/10/11 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
js 弹出菜单/窗口效果
2011/10/30 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
Python操作MySQL简单实现方法
2015/01/26 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
python代码编写计算器小程序
2020/03/30 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
程序员跳槽必看面试题总结
2013/06/28 面试题
董事长职责范文
2013/11/08 职场文书
学生手册家长评语
2014/02/10 职场文书
升学宴答谢词
2015/01/05 职场文书
签约仪式致辞
2015/07/30 职场文书
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
Python使用永中文档转换服务
2022/05/06 Python