2014-02-12 47 views
1

對於我正在處理的項目,我正在運行一些來自以前的程序員的Javascript編碼,這基本上如下所示。這是什麼樣的設置以及如何使用它?

var c_test = { 
    testVar : '', 

    init : function() 
    { 
     c_test.testVar = 'Hello world!'; 
    }, 

    showMe : function() 
    { 
    alert(this.testVar); 
    } 
}; 

上面創建的示例顯示了我發現的大量編碼的基本版本。我想這是某種形式的面向對象的JS,但我不確定如何正確使用它。例如,我將如何去調用這段代碼並運行'showMe()'函數?

+0

這是對象字面值,如答案中所述。只有一個實例,它的名字是c_test,所以你可以用'c_test.showMe()'調用showMe。對於OOP JavaScript,你必須知道原型和構造函數/初始化函數。更多的在這裏:http://stackoverflow.com/a/16063711/1641941 – HMR

回答

1

這被稱爲物體literal。這是通過列出其屬性和方法來構建對象的簡單方法。

0

考慮c_test是一個對象,具有兩種功能initshowMe和一個字段變量testVar

這是你會如何稱呼它。

c_test.showMe();

這也可以寫成如下的OOP構建。但從技術上講,這兩者之間也有區別。

function c_test(){ 
    this.testVar = ''; 

    this.init= function(){ 
     this.testVar='Hello World'; 
    }; 

    this.showMe = function(){ 
     alert(this.testVar); 
    }; 
}; 

推薦閱讀:

http://code.tutsplus.com/tutorials/the-basics-of-object-oriented-javascript--net-7670

+0

我明白了,但這種方式整個事情基本上寫作一個功能。顯然,我擁有它的方式需要一種不同的方法來調用。 – Beittil

+0

最好把共享成員放在原型上:http://stackoverflow.com/a/16063711/1641941對於構造函數,有一個命名約定,它們應該以一個資本 – HMR

0

爲了詳細說明Madhur阿華加的回答一點點,編碼這樣的方式基本上是直接創建的對象,而不是創造一個「類」第一,實例化你的對象。

這是可能的,因爲JavaScript不是面向類的,所以你可以直接創建對象。這種方法的缺點是,與首先創建原型相比,這使得這些對象的重用更爲複雜。

相關問題