面向对象是当代编程的主流思想。无论是C++还是Java,都是面向对象的。严格意义上来讲,JavaScript并不是面向对象的, 但Javascript的灵活性足以让我们将其用作一门面向对象语言.
JavaScript是一种没有类的,面向对象的语言。它使用原型继承来代替类继承。
在学习原型继承前,我们来了解一下在javascript中对象的概念。可以先告诉大家,javascript的对象是不同于 Java, C++中对象的概念的。
学过java或者C++的人都知道,对象是什么、对象是怎样产生的。为了和javascript中的对象进行比较,还是举一个java下对象的例子
class person{
string name;
string birthday;
public void sayhello{
System.out.println("hi,I am "+name+",I was born in "+birthday);
}
}
person Amy=new person();
在java或C++里,对象是new一个class出来的,里面有字段,属性,方法.
但是在javascript中,对象里面的一切都是属性,只有属性,没有方法。那么方法如何表示呢?方法也是一种属性,表示为键值对的形式。
/通过字面量定义的对象
var Amy = {
name : "Amy",
birthday : "1997年1月1日",
say_hello : function(){ console.log( "hi,I am "+name+",I was born in "+birthday); }
};
或者通过方法来创建一个对象:
function person() {
name : "Amy",
birthday : "1997年1月1日",
say_hello : function(){ console.log( "hi,I am "+name+",I was born in "+birthday); }
}
var Amy = new person();
可以看到,javascript中function(函数)的作用相当于java中class(类)的作用,那么在javascript中一句很重要的话就是,
对象都是通过函数创建的。
javascript的数据有两种,简单数据和复杂数据。简单数据有undefined,null,boolean,number和string这五种。复杂数据只有一种,即对象(object)。
那么,在javascript中,数组是对象,函数也是对象。
比如,数组:
var mycars=new Array();//Array()是一个函数,对象都是由函数创建的
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"
比如,函数:
var fn = function () {
alert(100);
};
fn.a = 10;
fn.b = function () {
alert(123);
}//函数就作为对象被赋值了a、b两个属性
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。