2011-11-22 124 views
8

我是JavaScript新手... 我試圖創建一個對象 - 「花」。 每朵花都有它的性質:價格,顏色,高度...用屬性創建一個對象,

有人可以給我一個想法如何建立它?

創建一個對象,然後改變他的屬性?

:-)

+0

正常的JavaScript對象?你不會需要jQuery的 –

回答

10
flower= { 
price : function() { 
    console.log('Price is 78 $'); 
}, 
color: 'red', 
height : 23 
}; 

flower.price(); 
flower.height ; 
+0

適用於單身物件。 – CSharper

1
var flower = {"height" : 18.3, "price":10.0, "color":"blue"} 
9

有一個對象,你也可以綁定功能。如果你想有多個花卉對象應使用以下的,因爲你可以輕鬆地創建新的鮮花,它們都將有您所添加的功能:

function Flower(price, color, height){ 
    this.price = price; 
    this.color= color; 
    this.height= height; 

    this.myfunction = function() 
    { 
     alert(this.color); 
    } 
} 

var fl = new Flower(12, "green", 65); 
fl.color = "new color"); 

alert(fl.color); 
fl.myfunction(); 

如果你想有一個排序陣列的只是使用一個對象字面值,但是您需要爲每個創建的對象設置屬性和函數。

var flower = { price : 12, 
       color : "green", 
       myfunction : function(){ 
        alert(this.price); 
       } 
}; 
flower.price = 20; 
alert(flower.price); 
alert(flower.myfunction()); 
+0

謝謝,尼爾斯......非常有幫助! – BorisD

+0

已經更新了我的帖子,嘗試了JSON格式內部的函數,'this'對象引用了元素,所以如果你想開始使用函數,你可以同時使用這兩個元素。 – Niels

0
var flower = {"propertyName1": propertyValue1, "propertyName2": propertyValue}; 

要檢索值:

var price = flower.price; 

要更改屬性值:

flower.price = newPrice; 
1

下面是創建與公共/私人部分對象(圖案s)

var MyObj = function() 
{ 
    // private section 
    var privateColor = 'red'; 

    function privateMethod() 
    { 
     console.log('privateMethod. The color is: ', privateColor); 
    } 

    // The public section 
    return 
    { 
     publicColor : 'blue', 
     publicMehtod: function() 
     { 
      // See the diffrent usage to 'this' keyword 
      console.log('publicMehtod. publicColor:', this.publicColor, ', Private color: ', privateColor); 
     }, 
     setPrivateColor: function(newColor) 
     { 
      // No need for this 
      privateColor = newColor; 
     }, 
     debug: function() 
     { 
      this.publicMehtod(); 
     } 
    }; 
} 

var obj1 = new MyObj(); 
obj1.publicMehtod(); 
obj1.setPrivateColor('Yellow'); 
obj1.publicMehtod(); 

var obj2 = new MyObj(); 
obj2.publicMehtod();