Bir işlev argümanını, Ruby'de bir alt çizgi ile bir yöntem argümanı başlatmaya benzer şekilde, JavaScript'te kullanılmayan şekilde standart bir işaretleme yöntemi var mı?Bir işlev bağımsız değişkenini belirtmek için kullanılan standart kurallar JavaScript'de kullanılmaz
Bir işlev bağımsız değişkenini belirtmek için kullanılan standart kurallar JavaScript'de kullanılmaz
cevap
Sadece bu yüzden çalışmak bir örnek var, bu jQuery en $.each
Array#forEach
göre daha geri kalmıştır nerede olduğunu yineleme geri aramasında endeksi, sadece değeri, gerekmez kod ($.each
yazıyoruz oldukça yaygındır):
$.each(objectOrArrayLikeThing, function(_, value) { }
// Use value here
});
kullanma (index
_
evet, bunu yapmak için standart bir şekilde gördüğüm en yakın olan, ama aynı zamanda yine onun amacı yansıtıcı bir isim vererek başkalarının — sürü gördüm), çağırarak unused
, vb.
_
'u kullanmak standarttır, muhtemelen kaç tane JS geliştiricisinin de Ruby kullandığı verilmiştir. değişken ama bir kara delik değil ama _
kendisi
, - o geçerli değişken isimleri olarak -
Ruby, parametreleri göz ardı etmek _
ile başlayan değişken adları kullanmayın Not. def f(_, _, x)
geçerlidir (iki yayını göz ardı ederek); def f(_a, _a, x)
geçersiz (iki param aynı ada sahip); def f(_a, _b, x) puts _a, _b, x end; f(1, 2, 3)
üç sayının tümünü çıkarır.
herhangi değişkenle JavaScript aynısını yapabilirsiniz - JavaScript parametre adları tekrarlayarak içinde yanlış bir şey görür: a(1, 2, 3)
döner [2, 3]
: function a(a, a, x) { return [a, x]; }
sonraki değerler öncekileri üzerine yazarak ile, geçerli bir beyandır. _
, JavaScript’te özel bir işlem olmaksızın başka bir değişken addır.
DÜZENLEME: _
in Ruby üzerinde iyi bir başvuru için teşekkürler Andrew Grimm. tür temiz olduğunu içindedir
function ({}, {}, value) {
// ...value
}
o kadar yöntemleri atama kütüphaneler ile ilgili sorunlar aynı adı taşıyan birden argümanlar problemini ortadan kaldırır ve aynı zamanda oluşturmaz: tarayıcılar biri yapabilir kurucuların desteklenmesi ile
Ruby'de '_' durumu için http://stackoverflow.com/questions/9559561/where-ve -how-is-the-alt çizgi-değişken-belirtilen –
@AndrewGrimm: Ah, iyi bulmak. Teşekkürler. – Amadan
* "Parametre adlarının tekrarlanmasında JavaScript hiçbir şey yanlış görülemez" * FYI, bu geçersiz [[2009'dan beri] (http://ecma-international.org/ecma-262/5.1/#sec-13.1) katı mod kullanırsanız ve sıkı mod kullanmıyor ... iyi ... hadi diyelim: sıkı mod kullanın :-)). Örnek: https://jsfiddle.net/L9rc23xm/ –
_
(lodash, alt çizgi, vb.).
Ne yazık ki, kullanılmayan bir argüman "undefined" veya "null" ise bu durum ortaya çıkar. –
@OlegsJeremejevs 'function ({} = {}, {} = {}, değer) {...}' burada yardımcı olur, ancak dağınık hale gelir ... – oluckyman
@oluckyman Nice workaround! "Kullanılmayan bir arg adı vermek istemiyor musun? Sadece halterle!" –
Şimdiye kadar gördüğüm kadarıyla, hala kullanılıyor. –
Kullanılmayan değişkenleri kaldırmak istiyorsanız [jslint] kullanın (http://jslint.com) – Tushar