在面向对象语言中会有各式各样的关键字,如public
、pcivate
、protected
、static
等等,设置了属性和方法的权限。
作为一门弱类型语言JavaScript
显然不具备这样的确定权限关键字,所以我们采取了另外的方式来使得变量和方法的权限得以被区别开来
提要
private
我们在JavaScript
基础篇里讲到了闭包,其最大的特点之一就是可以访问外层作用域的变量以及函数。所以我们可以利用这一特性将属性封装为内部属性
private
:声明在函数内部的属性及方法在外界是无法访问到的
public
在原型链部分的学习中我们得知在原型上定义的方法可以被其子类所调用。
public
:在原型(prototype
)上定义的属性/方法是公有属性/方法
static
在类的外部,通过点语法添加的属性、方法不会被初始化的new
执行,故新创建的对象无法获取他们,只能通过类调用
static
:模式如Book.isChinese = false
的类型(类名默认大写)
特权方法
在函数内部通过this
定义的属性&方法,通过其new
出来的对象自身都具有一份。通过其实例就可以访问得到。同时还能访问到类(创建时)或对象自身的私有属性/方法
特权方法:
this.getId = function(){console.log('this id my id')}
栗子
我们可以举一个例子。创造一个名为“Book
”的类且拥有id
、name
、price
三个自定义属性
1 | var Book = function(id, name, price){ |
我们可以写代码测试一下
1 | var instance = new Book(11, 'JavaScript', 50) |
今天要讲的就是这些啦,88。