美文网首页
公有、私有、静态属性和方法的区别2018-07-10

公有、私有、静态属性和方法的区别2018-07-10

作者: 考拉狸猫 | 来源:发表于2018-07-10 13:49 被阅读0次

    //私有方法:私有方法本身是可以访问类内部的所有属性(即私有属性和公有属性),但是私有方法是不可以在类的外部被调用

    //对象的私有方法和属性,外部是不可以访问的,在方法的内部不是能this调用对象的公有方法、公有属性、特权方法的

    function js() {

        var privateAttribute="私有属性";

        function privateMethod_A() {

            console.log("私有方法A,可以获取私有属性"+privateAttribute);

        }

        var privateMethod_B=function () {

            console.log("私有方法B,可以获取私有属性"+privateAttribute);

        }

        //私有方法可以在函数作用域范围内使用

        privateMethod_A();

        privateMethod_B();

        // 私有属性和方法还有个特点:都不能用this访问

        // this.privateAttribute;

        // this.privateMethod_A();

    }

    var instance=new js();

    console.log(instance);//instance实例访问不到私有属性及私有方法

    /*

    * 公有方法

    * 公有方法是可以在类外部调用的

    *但是不能访问类的私有属性

    *公有方法必须在类的内部或者外部通过类的prototype属性添加

    * 特点:可以用this.new.prototype访问

    * */

    function gy() {

        //公有变量在函数内或者实例都能访问

        this.pubicAtrribute="公有属性";

        this.publicMethod_A=function () {

            console.log('公有方法A,'+this.pubicAtrribute);

        }

        //公有方法可以在类的内部添加

        gy.prototype.pubicMethod_B=function () {

            console.log('公有方法B'+this.pubicAtrribute);

        }

        //公有方法可以在函数作用域范围内使用,也可以在函索作用域范围外使用,可以被实例调用和继承

        this.publicMethod_A();

        this.pubicMethod_B();

        // 公有属性和方法有个特点:在内部访问都必须用this访问

        // publicMethod_A();错误

    }

    //公有方法也可以在类的外部通过类的prototype属性添加

        gy.prototype.pubicMethod_C=function () {

            console.log('公有方法C'+this.pubicAtrribute);

        }

    /*new一个实例*/

        var g=new gy();

        console.log(g.pubicAtrribute);

        console.log(g.publicMethod_A);

        //但是,通过实例添加公有属性是不行的

    相关文章

      网友评论

          本文标题:公有、私有、静态属性和方法的区别2018-07-10

          本文链接:https://www.haomeiwen.com/subject/bhvfpftx.html