澳门金莎娱乐手机版 服务器 那么在js中如何实现对类的属性隐藏呢,function(){ //公开方法一 this.Name

那么在js中如何实现对类的属性隐藏呢,function(){ //公开方法一 this.Name

类:分为公开的和个人的 复制代码 代码如下:
function Person{ var name=n; //私有质量 function hello(){} //私有法子风流浪漫var hello2{} //私有办法二 this.Name = “张三”; //公开成员意气风发 this.Hello =
function(){ //公开方法风姿罗曼蒂克 this.Name; //公开药方法中得以调用私有方法与天性name; } } Person.prototype.Age=20; //公开成员二 Person.prototype.SayHi =
function(){} //公开药方法二 var p = new Person; p.ShowAge=function(){
//公开的不二秘籍三 this.Age; } p.Gender=”M”; //公开的积极分子三 继承: 复制代码 代码如下: function Person{ //父类
this.Name = “李四”; } function Studnt{ //子类 Person.apply; //技艺方法风姿洒脱Person.call; //才干方法二 }

本条体系重大探求的是javascript面向对象的编制程序,后面早就重要介绍了眨眼间间js的延续,下边想差不离的说一下js如何实现封装的性状。

 

咱俩掌握面向对象的语言完结封装是把成员变量和方法用一个类包围起来,对类中变量的访谈只可以通过已定义的接口。封装能够算是大器晚成种音信隐讳技术,java通过private修饰符将成员变量私有化,并提供对外改正的接口,以调节类中的成员变量的拜谒和修改。当然在这里些办法中得以对数码举行局部加工。

 

在前边文章已经介绍了js的属性难点,那么在js中哪些促成对类的品质遮盖呢?这里封装有会有怎么着蔽端。

 

上边看一下跌实封装的代码:

 

复制代码

var Person = (function(){

    //定义私有方法,相当于private方法,只好在中间访问

    function hello(){

        alert(‘hello world!’);

    }

    return function(){

        //定义私有属性,也便是private属性,只可以在国有方法内部访谈

        var name,age;

        //定义公有方法,也正是public方法,可以在类的实例中方法

        this.getName = function(){

            return name;

        };

        this.setName = function(newName){

            name = newName;

        };

        this.getAge = function(){

            return age;

        }

        this.setAge = function(newAge){

            age = newAge;

        };

        this.say = hello;

        this.introduce = function(){

            alert(‘my name is :’+this.getName());

        }

    }

})()

 

var p = new Person();

p.say(); //hello world

p.setName(‘xiaoming’);

p.introduce(); //my name is : xiaoming

复制代码

打包的益处那儿就绝非常少说了,但在js里接纳一定得注意,制止超负荷包装。上边看一下卷入对后续有未有怎么着震慑。

 

代码如下:

 

复制代码

var Person = (function(){

    //定义私有方法

    function hello(){

        alert(‘hello world!’);

    }

    return function(){

        //定义私有属性,相当于private属性

        var name,age;

        //定义公有方法,相当于public方法

        this.getName = function(){

            return name;

        };

        this.setName = function(newName){

            name = newName;

        };

        this.getAge = function(){

            return age;

        }

        this.setAge = function(newAge){

            age = newAge;

        };

        this.say = hello;

        this.introduce = function(){

            alert(‘my name is :’+this.getName());

        }

    }

})()

 

Person.prototype.call = function(){

    this.say();

}

 

var Student = function(){

    Person.call(this);

}

for(var i in Person.prototype){Student.prototype[i] =
Person.prototype[i]}

 

var s = new Student();

s.setName(‘xiaoli’);

s.getName();//xiaoli

s.call();//helloworld

复制代码

能够见见Student类世襲了Person类,获得了Person类的国有方法和集体全部方法即prototype定义的办法。由于JavaScript并不原生协助封装,所以在JavaScript中完毕封装必供给在意复杂性的标题。

大家知道…

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图