第二章 JavaScript 面向对象编程
JavaScript是解释型语言,在编译时和运行时没有明显的区别。
JavaScript是基于原型的面向对象语言,即每个对象有一个原型,对象从原型中继承属性和方法。在JavaScript中原型关系是递归,对象的原型也是一个对象。
对象销毁与垃圾回收:解释器自动给对象分配内存,当对象使用完毕后,解释器自动清理对象所用内存,即垃圾回收。
动态添加对象的方法;
function alertSay() {
alert("不行。");
}
var myString = new String("我可以大声说话吗?");
myString.sayNo = alertSay;
myString.sayNo();
构造函数方式:通常,类名的第一个字母是大写的
function Person(name) {
this.name = name;
this.say = function() {
alert("我叫:" + this.name);
}
}
var oPerson1 = new Person("John");
var oPerson2 = new Person("mary");
注:
this:当前对象(局部变量)
有new返回this,不同的new返回不同的this;有new返回return,无return返回undefined。
混合构造函数和原型方式;
function Person(name) {
this.name = name;
}
Person.prototype.say = function() {
alert("我叫:" + this.name);
}
var oPerson1 = new Person("John");
var oPerson2 = new Person("Mary");
alert(oPerson1.say());
alert(oPerson2.say());
使用JSON格式创建对象;
var personObj = {
firstname: "John",
lastname: "Doe",
age: 50,
tellYourage: function {
alert("年龄是;“ + this.age);
}
}