Jam*_*Lin 1 javascript closures
我有以下代码:
for (var i in listings){
var listing = listings[i];
map.addMarker({
lat: listing.GeographicLocation.Latitude,
lng: listing.GeographicLocation.Longitude,
title: listing.Title,
click: function(e){
(function(listing){
console.log(listing.Title);
})(listing);
},
});
}
Run Code Online (Sandbox Code Playgroud)
当我点击标记时,我总是得到最后一个列表的标题.
for (var i in listings) {
var listing = listings[i];
map.addMarker({
lat: listing.GeographicLocation.Latitude,
lng: listing.GeographicLocation.Longitude,
title: listing.Title,
click: (function (listing) {
return function(e) {
console.log(listing.Title);
};
})(listing)
});
}
Run Code Online (Sandbox Code Playgroud)
你已经以错误的方式放置了闭包 - 它需要立即执行,而不是在调用click事件时执行.
| 归档时间: |
|
| 查看次数: |
955 次 |
| 最近记录: |