2010-10-08 50 views
2

我正在学习如何在JavaScript中创建对象。当我做到这一点...JavaScript如何做OOP?

var Person = { 
    name: "John Doe", 
    sayHi: function() { 
    alert("Hi"); 
    } 
}; 

我知道,我创建一个Person类的一个实例,但我不知道如何(或者如果)我可以重复使用类来创建另一个实例。 JavaScript具有哪些OOP功能?它是否具有与其他语言(如Java或Ruby)相同的面向对象功能?有人可以解释JavaScript如何做OOP吗?

+1

@orolo,你应该改变你的评论到一个答案,这是很好的恕我直言。 – 2010-10-08 20:45:52

+2

其实,你身上的'Person'就是一个单一的对象,而不是一个类。类通常被定义为函数(然后得到新的)。尝试检查出http://mckoss.com/jscript/object.htm关于类继承的解释等。 – Cameron 2010-10-08 20:47:21

+0

@Cameron:+1。我打算在答案中提出该链接。我喜欢回到那篇关于Object行为的文章。 – vol7ron 2010-10-08 20:56:44

回答

3

在您的示例中,您并未创建Person类的实例。您正在创建一个名为'Person'的变量,其中包含一个匿名对象。

要创建一个类类型的人,你会怎么做:

function Person() { 
    this.name = "John Doe", 
    this.sayHi = function() { 
    alert("Hi"); 
    } 
} 

var somebody = new Person(); 

否则,我认为你的问题太广泛和复杂。网上有很多javascript文章和教程(和书店里的书籍)。去研究他们,如果你不明白具体的东西,然后张贴在这里。

2

克罗克福德有一些很好的解释here

+0

+1,很好的参考 – 2010-10-08 20:51:46

3

JavaScript不使用类。它使用原型。有多种创建新对象的方法。

你可以这样做:

var john = Object.create(Person); 

或者你可以使用关键字new

function Person() = { 
    this.name = "John Doe", 
    this.sayHi = function() { 
    alert("Hi"); 
    } 
}; 

var john = new Person(); 

欲了解更多信息,请阅读: