js中的一切都是对象,对象是所有一切的基础,从函数到字符串。好像很屌的样子。
其实js是一种原型式(prototype-style)的语言,所有的一切都派生自现有对象的一个副本。
1.继承
在js中继承都是通过简单的从一个对象原型中向另外一个对象原型复制方法实现的。
例如直接employee.getName = person.getName;
2.作用域解析
js中的作用域是在函数中进行维护的。
3.原型中添加公有方法通过prototype属性进行。当修改一个对象的原型时,任何继承自该对象的对象和该对象已经存在的所有实例都会立刻继承所有同样的变化。
4.私有和特权成员
私有成员用于在对象的内部添加一个只供自己使用的私有或者特权成员。方法在构造函数中使用var关键字和function关键字
例如:
function myConstructor(message) {
this.message = message;
var separator = '-'; //私有属性
var myowner = this;
function alertMessage() { //私有方法
alert(myowner.message);
}
alertMessage();
}
私有方法是存在于构造函数作用域中的自包含的对象。因为被限制在构造函数的作用域中,因此不能在对象外部访问这些私有成员。
与之相比,特权成员能够被公开访问,而且可以访问私有成员。方法是在构造函数的作用域中使用this关键字来定义自己的方法。例如:
function myConsructor(message) {
this.appendToMessage = function(string) {
//自己的代码
}
}
因为特权函数位于构造函数的作用域内部,因此具有通过作用域链访问私有成员的权限。所以说特权方法也算一种特殊的公有方法。