zoukankan      html  css  js  c++  java
  • js静态属性和静态方法

    啥也不说了,直接上代码。。。(就是这么任性)

        var Animal = function(){};
        Animal.name = "dog";
        var a = new Animal();

        console.log(a.name); 

    结果如图 :

     

    很明显这样调用是不可以的,那如果console.log(Animal.name)这样呢?

        var Animal = function(){
            Animal.name++;
        };
        Animal.name = 0;
        // var a = new Animal();

        console.log(Animal.name); 

     

     静态方法是指不需要声明类的实例就可以使用的方法

     纳尼?结果是这样了滴。。。。。为毛?

     那这样呢?

         function Animal (){
            // alert(Animal.name);
            this.say = function(){
                console.log(Animal.name);
            }
        };
        Animal.name = "Ev2le0";
        var a = new Animal();

        a.say(); 

    结果是:

     

    纳尼,哭晕在wc了。。。 

    算了还是写静态方法吧 

        function staticClass(){};//声明一个类
        //为这个类添加一个静态方法
        staticClass.staticMethod = function(){
            console.log("this is a static method");
        }

        //声明一个实例方法
        staticClass.prototype.instanceMethod = function(){
            console.log("this is a instance method");
        }

        //尝试调用一下静态方法,分别使用2种方式
        var a = new staticClass();

        a.staticMethod(); 

     结果是这样滴:

     

     再试一下类名.方法名的调用方式

        function staticClass(){};//声明一个类
        //为这个类添加一个静态方法
        staticClass.staticMethod = function(){
            console.log("this is a static method");
        }

        //声明一个实例方法
        staticClass.prototype.instanceMethod = function(){
            console.log("this is a instance method");
        }

        //尝试调用一下静态方法,分别使用2种方式
        var a = new staticClass();
        // a.staticMethod();

        staticClass.staticMethod();

     结果是这样子滴:

     

     那调用实例方法能不能用类名.方法名()的形式呢?

        function staticClass(){};//声明一个类
        //为这个类添加一个静态方法
        staticClass.staticMethod = function(){
            console.log("this is a static method");
        }

        //声明一个实例方法
        staticClass.prototype.instanceMethod = function(){
            console.log("this is a instance method");
        }

        //尝试调用一下静态方法,分别使用2种方式
        var a = new staticClass();
        // a.staticMethod();

        staticClass.instanceMethod(); 

     结果是这样子滴:

     

     总结:

    1,对于静态方法可以使用类名.方法名()

    2,实例方法就只能老老实实的使用对象.方法名()的形式调用了。 

  • 相关阅读:
    Restful 的概念预览
    Bootstrap中alerts的用法
    Bootstrap HTML编码规范总结
    Bootstrap中img-circle glyphicon及js引入加载更快的存放位置
    PI数据库
    memcached
    Bootstrap中样式Jumbotron,row, table的实例应用
    js事件监听
    jquery显示隐藏操作
    HDU4521+线段树+dp
  • 原文地址:https://www.cnblogs.com/EvileOn/p/5515216.html
Copyright © 2011-2022 走看看