這可能很簡單,但我沒有明白。我聲明瞭一個函數來繪製形狀上的HTML畫布,像這樣:Javascript:使用函數作爲對象並訪問屬性
function res08(ctx, color){
this.color = color;
ctx.save();
ctx.fillStyle = color;
ctx.beginPath();
ctx.moveTo(649, 143);
ctx.lineTo(649, 158);
ctx.lineTo(661, 158);
ctx.lineTo(664, 154);
ctx.bezierCurveTo(665, 155, 666, 157, 666, 158);
ctx.lineTo(683, 158);
ctx.lineTo(683, 144);
ctx.lineTo(674, 144);
ctx.lineTo(674, 137);
ctx.lineTo(678, 137);
ctx.lineTo(678, 111);
ctx.lineTo(648, 111);
ctx.lineTo(648, 143);
ctx.lineTo(649, 143);
ctx.closePath();
ctx.fill();
}
我想因爲函數是一個對象,它被稱爲後,我將能夠訪問顏色屬性,像這樣:
var ctx = document.getElementById('theCanvas').getContext('2d');
var blue = '#9ec3de';
res08(ctx, blue);
console.log(res08.color);
但是,這是返回undefined。我也嘗試聲明函數作爲變量:
var res08 = function(ctx, color){
我在想什麼?謝謝!
你爲什麼要這樣做?這很奇怪。你不會更好從函數返回一個新的對象嗎? – Pointy
好吧,這不僅僅是這一個......而且編寫原始代碼的人不知道oop;) – Andy
那麼我的觀點是,這不是真正的「面向對象的編程」。在函數中存儲屬性並不是聞所未聞的,但將函數調用的結果存儲在函數中本身並不常見。它打算做什麼? – Pointy