js注意事项10

来源:互联网 发布:安全大数据 编辑:程序博客网 时间:2024/06/03 18:08

js中创建一个对象的模板,我们称之为类或者基本对象,

由于js是动态语言,对象的的属性都是可以自动动态添加,

例如

functionPerson(){}

var p1=newPerson();

p1.name="jianggangli";

p1.age=28;

如果我们想要再次创建另外一个person对象,

这个就需要name,age属性,

var p2=newPerson();

p2.name="张三";

p2.age=89;

这个时候name,age写了两次,我们就会发现其实person是很需要一个模板person

模板里面有默认的一些属性,这时候就需要this出现,用来标记模板对象本身,

functionPerson(){

    this.name="abc";

    this.age=90;

}

this的作用就是使用基本对象本身的意思,因为对象是给全局用的,所以本定义成了this的对象或者方法

就是一个公开的作用范围,就像java里面public一样,

但是如果属性在基本对象里面定义没有加上this,即var开头的定义,那么这个属性的作用范围就只能在这个基本对象中使用

如下例子:

functionPerson(){

    var name="abc";//由于name和age在类中通过var来定义,导致name和age为类中的私有变量,所以无法通过引用方式来访问类中私有的成员变量。

    var age=900;

    this.name2="abc2";//this.name2表示name2这个属性是公开的。

    //这个就是Person类的一个公开方法,类中所有公开的方法都必需通过this来定义。

    this.show=function(){

        window.alert(name+" "+age);

    }

    //这时Person类中的私有方法,只能在Person类中使用。

    function show2(){

        window.alert("show2()"+name+""+age);

    }

}

var p1=newPerson();

window.alert(p1.name+""+p1.age+" "+p1.name2);//出现无法访问的情况,提示undefine

p1.show();

p1.show2();//这里会报错。
0 0