快速业务通道

JS教程:学习笔记之JS类

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-06
ip;

}

var nahao = new Person(''Top css'',male,1989,''www.javava.org'',''有10跟脚趾头'');

alert(nahao.privacy); //对构造函数作出一定修改之后,我们给nahao对象添加了一个privacy属性,如果试图alert它的值的话将会显示undefined。

下面再来看看私有方法,如果我们对Person构造函数作出如下修改:

 

 

function Person(nameArg,genderArg,yearOfBirthArg,siteArg,privacyArg){

function insideOnly(){

alert(''我只在对象内部可以调用!'');

}

}//那么insideOnly将不能被外部所访问,如果试图执行这个函数将会出错。需要注意的是,私有方法并没有绑定到对象上,它的this关键字也并不指向对象。如果需要在私有方法内引用对象,那么可以使用如下方法:

 

 

function Person(nameArg,genderArg,yearOfBirthArg,siteArg,privacyArg){

……

var myOwner = this;

function insideOnly(){

alert(myOwner.name);

}

}//首先在构造函数中定义一个myOwner变量,将this关键字赋给它,之后就可以在私有函数里使用这个变量来访问对象本身了。

 

 

8、 特权方法私有成员不能在对象的外部访问,不能访问的对象有什么用?我们可以使用特权方法来访问这些私有属性。所谓特权方法就是使用this关键字定义的函数,例如:

 

 

function Person(nameArg,genderArg,yearOfBirthArg,siteArg,privacyArg){

……

this.showPrivacy = function(){

var str = ''秘密:'' + this.name + privacy + ''!'';

alert(str);

};

}

var nahao = new Person(''Top css'',male,1989,''www.javava.org'',''有10跟脚趾头'');

nahao.showPrivacy();

 

我们首先给Person构造函数添加了一个showPrivacy特权方法,方法中使用了私有变量privacy的值。最后我们在nahao对象上调用该方法,结果如下:

 

9、 prototype浅析首先,我们要否定上面这句话“对Person.prototype的修改同样会影响到使用Person定义的对象。”请看如下代码:

 

 

Person.prototype = {

mark:''Person.Proto''

}

var nahao = new Person(''Top css'',male,1989,''www.javava.org'');

Person.prototype = {

mark:''Person.NewProto''

}

alert(nahao.mark);

 

alert的输出会是什么呢?根据上面的经验,在alert之前,对Person.prototype的最后修改将它的mark属性赋值为''Person.NewProto''。但是实际的输出结果:Person.Prot

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号