Soru Javascript özellik adlarında tire izinleri var mı?


Ben bakıyordum http://docs.jquery.com/Plugins/Authoring#Defaults_and_Options jQuery için basit bir eklenti oluşturmak. Seçenekler ve ayarlar ile ilgili bölümü takip ederek, aşağıdakileri yapmadım ki, çalışmadı (senaryo, ayarla karşılaştığında çıkıldı).

var settings = {
    'location' : 'top',
    'background-color': 'blue'
}
...
$this.css('backgroundColor', settings.background-color); // fails here

Çizgi rengi arka plan renginden kaldırdığımda işler düzgün çalışıyor.

var settings = {
    'location' : 'top',
    'backgroundColor': 'blue' // dash removed here
}
...
$this.css('backgroundColor', settings.backgroundColor); 

Bir şeyi özlüyorum mu, yoksa jQuery belgeleri yanlış mı?


44
2018-04-01 16:22


Menşei


Kullanmaya çalıştığınızı unutmayın background-color Bir özellik olarak, bir değişken olarak değil. Değişkenler yalnızca Tanımlayıcılar olabilir, mülk erişimcisi daha az katıdır ve IdentifierNames (ReservedWords hariç tutulabilir) olabilir. Ama bu durumda, background-color ne tanımlayıcı ne de tanımlayıcı adı değildir. - Oriol


Cevaplar:


yok hayır. ayrıştırıcı, çıkarma işleci olarak yorumlayacaktır.

yapabilirsin settings['background-color'].


90
2018-04-01 16:24



Anlıyorum. Teşekkürler, kullanmam gereken şey buydu. $ this.css ('backgroundColor', seçenekler ['background-color']); - xecaps12
Bu cevabı kabul etmeliyim, çünkü haklı ve yorumlarda esprili şakaya yer veriyor. - xecaps12
Bu @dan için çok takdir! - Taylor Ackley
@Daniel, Neden Acess için [] köşeli ayraç kullanmalıyız? - VjyV
@VjyV çünkü javascript motoru bunu - operatör adı ve mülkiyet isminin bir parçası değil. - Daniel A. White


Değişiklik settings.background-color için settings['background-color'].

Değişkenler içeremez - çünkü bu, çıkarma işleci olarak okunur.


15
2018-04-01 16:25



Çünkü bunun için +1 - John Magnolia
Bu, istek başlıklarını ve "içerik türü" gibi değişkenleri çözerken önemlidir. İstek modülünü kullanıyorum ve içerik türünü bilmem gerekiyor. Response.headers ['content-type'] kullanabilirim - David J


Javascript değişkenlerinde tire geçerli değildir. Bir değişken adı bir harf, dolar işareti veya alt çizgi ile başlamalı ve aynı veya bir sayıyla takip edilebilir.


8
2018-04-01 16:25



Ama bu bir değişken değil.


Dizelerde çizgiler olabilir. Eğer bu çizgiyi tutmak istediğinizde, parantezleri kullanarak ve hangilerini kullanarak mülke başvurmanız gerekir:

$this.css('backgroundColor', settings['background-color']);

3
2018-04-01 16:25