簡體   English   中英

在javascript中實現OOP的更好方法

[英]the better way to implement OOP in javascript

我想用JavaScript和Canvas做一個框架(學術上)的動畫,我開始尋找使用javascript進行面向對象編程的指南,發現太多的變化。

例子:

// Example 1
var object = {
  public_method: function(){ //do something }
}

// Example 2
function object(){
  this.public_method = function(){ //do something }
}
var o = new object();

這是正確或最佳的方法(簡單明了)。

注意:這種項目的設計模式好嗎?

第一個將僅創建一個實例,而第二個可用於創建多個實例。

我更喜歡使用構造函數並將方法放在原型中。 這樣,方法將為所有實例創建一次,而不是為每個實例分別創建:

function ExampleObject() {
  this.answer = 42;
}

ExampleObject.prototype = {
  get_answer: function(){ return this.answer; },
  another_method: function(){}
};

var obj = new ExampleObject();
alert(obj.get_answer());

如果您想要類似於經典OOP設計(圍繞 )的內容,則應執行以下操作:

function MyClass(param1, param2) {
    this.param1 = param1;
    this.param2 = param2; // These are fields.
}
MyClass.prototype.publicMethod = function() {
    // do something
}
var o = new MyClass(x, y);

我建議您閱讀有關prototype更多信息。 這使您可以創建同一“類”的許多實例,而不會浪費內存,執行和編程,分別為每個實例定義方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM