javascript是一种面向对象的语言,这已经是不争的事实,可是对象如何产生?如果按照我的想法,javascript中除了变量剩下的就是函数(个人理解,也不知对错),但是其文档中说javascript中处了基本类型,其余的都是对象,这个其余的包含了函数。
我们知道在C#等语言中,对象是由构造函数产生的,构造函数是定义在类中的,而javascript是没有类的概念,那么对象是如何定义的,没错,就是函数,如下面的例子:
function Person(name) {
this.name = name;
alert(this.name);
}
Person.prototype.getName = function () {
return this.name;
}
function Test() {
var Li = new Person("刘宇");
alert(Li.getName());
}
在javascript中,我说这个函数奇怪,那如何奇怪呢,因为我们可以将定义好的函数直接赋给一个变量,甚至作为另一个函数的参数传递,函数作为参数传递,在C语言的函数指针中屡见不鲜,但是javascript中似乎没有指针这个概念,但是有对象,也就是函数,我们知道对象一般是指向内存的一个地址,我不知道在javascript中是不是这样,但是它的确可以这么用,看下面的例子吧!
function Person(name) {
this.name = name;
alert(this.name);
}
Person.prototype.getName = function () {
return this.name;
}
function Test() {
var Li = new Person("刘宇");
alert(Li.getName());
}
var pTest = Test;
pTest();