JS教程:学习笔记之JS类
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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |