ben aşağıdaki kod parçasını Test işlevi gerçekleştirmek ise: o zamanGarip davranışlar
function pointInside(r, p) {
var result =
(p.x >= r.location.x - r.size.width * 0.5) &&
(p.x <= r.location.x + r.size.width * 0.5) &&
(p.y >= r.location.y - r.size.height * 0.5) &&
(p.y <= r.location.y + r.size.height * 0.5)
;
return result;
}
function test() {
var rect = {};
rect["location"] = { x:6, y:5 };
rect["size"] = { width:10, height:8 };
var p = { x:10, y:8 };
var inside = pointInside(rect, p);
console.log(inside ? "inside" : "outside");
}
metin "içeride" konsola yazılır alır. Harika. Şimdi, eğer bu kadar pointInside işlevini değiştirin: Ben "dışarıda" test işlevini çağırdığınızda sonra konsola yazılır alır
function pointInside(r, p) {
return
(p.x >= r.location.x - r.size.width * 0.5) &&
(p.x <= r.location.x + r.size.width * 0.5) &&
(p.y >= r.location.y - r.size.height * 0.5) &&
(p.y <= r.location.y + r.size.height * 0.5)
;
}
. Daha fazla araştırmada pointInside fonksiyonunun aslında tanımsız bir şekilde geri döndüğünü görüyorum. Niye ya? PointInside'ın iki versiyonu arasında anlamlı bir fark göremiyorum. Bunu bana açıklayan var mı?
Birçok ayrıntıya katılıyorum olmamakla birlikte, genel his doğrudur: https://www.youtube.com/watch?v=D5xh0ZIEUOE –
Bu, özelliğin bir parçası değildir. “Birçok tercüman yapmaya çalışır”, * tüm * tercümanların * yapması gereken bir şey. –
Belki de gerekir, ama çoğu zaman olduğu gibi, gerçeklik ve standartlar her zaman kesişmez. Şu anda küçük-j'ler kullanıyorum, mikrodenetleyiciler için gömülü bir yorumlayıcı. Bir noktalı virgül için bekleme bekler, bu nedenle standartlara uygun değildir. Tuhaf kurallarla ilgilenmemek, uyumlu olmayabilir ancak kodu küçük ve güvenlik sorunları için doğrulamakta kolay tutar. –