[英]How to create OOP Class in Javascript
我不愿使用任何教程,因为我知道这些教程最终会变成什么样,并教给您错误的处理方法。 我想用Javascript设置一个类,这样我就可以
var vehicle = new Vehicle(el);
var model = vehicle->getModel();
这些功能将读取HTML并获取和管理页面上的元素。 我目前正在执行类似...的设置
var model = function () {
return {
getName: function () {
},
getVehicleCount: function () {
},
incrementCount: function (id) {
console.log(x);
}
}
}();
我仍在学习Java语言中的类...我希望能够将所有方法将要使用的元素的节点传递给该类,但是我不确定我是否做对了...
JavaScript中没有类,而是JavaScript中的所有对象都是对象。
要创建一个新对象,您定义一个在其中使用this
关键字的函数(“构造函数”),然后使用new
运算符对其进行调用:
function Foo (id) { // By convention, constructor functions start with a capital letter
this.id = id;
}
var foo1 = new Foo(1);
var foo2 = new Foo(2);
但是,这些对象没有方法。 要添加方法,您需要在其构造函数上定义一个原型对象:
Foo.prototype = {
getId: function () {
return this.id;
}
}
这个新的getId
函数将对所有Foo
对象都可用。 但是,如上所述,JavaScript中没有类,因此将使用其他构造来产生不同的结果。
我强烈推荐道格拉斯·克罗克福德(Douglas Crockford)的视频,他在其中解释了很多javascript OO性质。 可以在这里找到讲座:
http://developer.yahoo.com/yui/theater/
Douglas Crockford — JavaScript编程语言
Douglas Crockford —高级JavaScript
这些将使您对javascript的结构有基本的了解,并应有助于从经典编程向函数式编程的过渡。
尽管JavaScript中没有类,但是您可以创建构造函数。 构造函数通过将方法绑定到对象原型来工作。 有几种方法可以做到这一点,每种方法都有优点和缺点。 我个人更喜欢最直接的方法,该方法是将方法附加到“ this”上:
var Constructor = function() {
//object properties can be declared directly
this.property = "value";
//to add a method simply use dot notation to assign an anonymous function to an object
//property
this.method = function () {
//some code
}
//you can even add private functions here. This function will only be visible to this object methods
function private() {
//some code
}
//use return this at the end to allow chaining like in var object = new Constructor().method();
return this;
}
JavaScript中没有像类这样的东西。 JavaScript继承可用于原型。 您可以看一下base2 ,它模仿了JavaScript中类似类的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.