视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Javascript面向对象(一)(共有方法,私有方法,方法)_js面向对象
2020-11-27 21:03:02 责编:小采
文档


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

私有方法写法:
代码如下:
function myClass () {
var private_attribute = initial_value;
function private_method () { }
var private_method2 = function () { }
}

实例showpet()就是一个私有方法

代码如下:
var pet=function(){  var temp=""  //私有变量只有在函数或者对象作用域范围内能访问
function showpet(){
  alert("123")
}
showpet();//私有方法可以在函数作用域范围内使用。
}
showpet();//会出错
pet.showpet()//还是不能这样调用

var Penguin=new pet() //实例化一个pet对象
Penguin.showpet()//不好意思这样子还是不能让你调用。

公有方法:

  1.公有方法是可以在类的外部被调用的,

  2.但是它不可以访问类的私有属性。

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

公有方法写法:

代码如下:
function myClass () {
this.public_attribute = initial_value;
this.prototype.public_method = function () { }
}
myClass.prototype.public_attribute2 = initial_value;
myClass.prototype.public_method2 = function () { }

实例:
代码如下:
var pet=function(){
function showname(){//私有方法
  alert(this.name)
}
  this.show=function(){ //如果这里不理解,请注意这个方法下面就要介绍了。
  showname();
  }
}
pet.prototype.setname=function(str){
name=str;
}
var Penguin=new pet()
  Penguin.setname("Penguin");//添加实例的name值为Penguin
  Penguin.show(); //弹出Penguin
  Penguin.setname("wind");//添加实例的name值为wind
  Penguin.show(); //弹出wind

方法:

  1.方法是可以在类的外部被调用的,

  2.但是它可以访问类的私有属性,并且也是可以访问类的公有属性,可以勉强的认为它是一种特殊的公有方法。

  3.但是它与上面的公有方法的声明与定义方式不同。方法必须在类的内部声明定义。

方法写法:
代码如下:
function myClass () {
this.privileged_method = function () { }
}

实例
代码如下:
var pet=function(){
function showname(){//私有方法
alert(this.name)
}
this.show=function(){//通过使用this关键字定义一个方法。
showname(); //在方法中访问私有方法;
}
}
pet.prototype.setname=function(str){
name=str;
}
var Penguin=new pet();//实例化一个pet对象
Penguin.setname("Penguin");//调用公有方法修改
Penguin.show(); //调用方法访问私有方法,弹出name

下面是我自己的一些理解:通过对上面这些的学习,结合我自己看的书。对于公有,私有,的理解如下:
公有方法:就是所有通过该类实例化出来的对象,共同都拥有或者说都可以使用的方法。一般把共用的方法,都放在“原型对象“当中,如果放在构造函数中,会重复创建共同的方法。

私有方法:不能在外部调用。
方法:利用的闭包原理,即通过作用域链,让内部函数能够访问外部函数的变量对象(即该类的私有变量、私有方法)。(作用域链,闭包,变量对象;这三个在《Javascript高级程序中有讲解》)

下载本文
显示全文
专题