Ben küçük bir JavaScript oyun çerçevesini yazma ve genellikle nesnelerin kullanmak özellikleriniYerel işlevlerde bu anahtar sözcüğünden nasıl kurtulabilirim?
this.depth = this.y;
gibi Ancak bu this
'es oldukça rahatsız edici ediyorum @ _ @. Yazmak için bir yol var mı?
… genel nesneyi etkilemiyor mu?
Benim örneklerini iki fabrika fonksiyonları vasıtasıyla oluşturulur ve bunlar önceden tanımlı değişken sınırlı listesini yapmak, böylece hepsi hepsi değiştirilebilir olsa Fonksiyonlar, .apply()
yöntemiyle örneklerine uygulanır vb depth
, y
var.
this
anahtar kelimesini atlamam gerekmesinin nedeni, çerçevenin yalnızca benim için değil, başka insanlar için de tasarlanmış olmasıdır. Çerçevenin kendisinde this
'u kaldırmam gerekmiyor, ancak bu kitaplığa dayalı uygulamaları kodlarken this
anahtar kelimesi çok zaman harcıyor. Şimdiye kadar bildiğim tek çözüm 'özel' değişkenler yapmaktır, ancak daha önce JavaScript'le çalışmayan ve obj1'i obj2'den manipüle eden kişiler için .apply
- çok daha fazla anonim işlevlere neden olan bazı rahatsızlıklara neden olmaktadır. Yani, gördüğüm gibi, JavaScript'te her derde deva yok.
Yapıcılar:
/*...*/
'Copy' : function (type) {
var obj = {
'x':0,
'y':0,
'xprev':0,
'yprev':0,
/*...*/
};
return obj;
},
'make' : function (type,x,y) {
obj = ct.types.Copy(type);
obj.x = obj.xprev = obj.xstart = x;
obj.y = obj.yprev = obj.ystart = y;
/*...*/
ct.stack.push(obj);
}
/*...*/
XY sorunu gibi görünüyor. – elclanrs
no sanırım, bunu geçerli nesneyi kullanmak için kullanmalısınız –
'this = t; t.depth = y' ... ama evet, 'bu' dilin bir parçası. – serakfalcon