Bir JavaScript değişkeninin hafıza adresini bulmak mümkün mü? JavaScript kodu, JavaScript'in C++ için bir ön uç olarak kullanıldığı ve tarayıcıda çalışmadığı normal bir uygulamanın parçasıdır (içine gömülür). Kullanılan JavaScript uygulaması SpiderMonkey'dir.Bir JavaScript değişkeninin hafıza adresini nasıl alabilirim?
cevap
Her ne olursa olsun, javascript motoruna çok bağlı olacaktır. Daha modern javascript motoru, kodlarını derhal bir zaman derleyicisi kullanarak derler ve iç değişkenleriyle uğraşmak, performans açısından kötü ya da kararlılık açısından kötü olur.
Motor izin veriyorsa, neden değişkenin değerlerini değiştirmek için bazı yerel kodlara bir işlev çağrısı arayüzü yapmıyorsunuz?
Evet, katılıyorum, C++ 'da JavaScript ile arayüz yapabilen bazı kodların olması gerektiğini düşünüyorum. – vivekian2
Daha fazla veya daha az imkansız - Javascript'in değerlendirme stratejisi her zaman çağrıya değer kullanmaktır, ancak Nesneler (diziler dahil) durumunda, iletilen değer, kopyalanmayan veya klonlanmamış olan Nesne bir başvurudır. Nesnenin kendisini işlevde yeniden atarsanız, orijinal değiştirilmez, ancak Nesnenin özelliklerinden birini yeniden seçerseniz, bu orijinal Nesneyi etkileyecektir.
Yani, ne yapmaya çalışıyorsunuz? C++ ve Javascript arasındaki karmaşık verileri geçiyorsa, iletişim kurmak için bir JSON kitaplığı kullanabilirsiniz. İşleme için C++'ya bir JSON nesnesi gönderin ve eskisini değiştirmek için bir JSON nesnesi alın.
Nesnenin kendisini veya mülkünü yeniden tayin etme hakkında harika not. Nesneyi orijinal noktaları bir şekilde değiştirebilir misiniz? – Qwerty
Farklı bir kapsamdaki bir nesnenin referansını değiştirmek mi istiyorsunuz? Hayır. Bu gibi durumlarda, JS'nin kapsülleme veya nesne yönelimli tesislerinden yararlanmak, fonksiyon gövdesini ve aynı kapsamda değiştirmek istediğiniz referansı koyarak veya aynı nesnenin referansını ve işlev üyelerini yaparak . – user2310967
"Normal bir uygulamaya gömülü olarak", gömülü Javascript içeren bir web sayfanız var mı? – Juliet
Hayır, tarayıcıda çalışmaz, hiçbir web sayfası yoktur. JavaScript motoru normal bir masaüstü uygulamasının bir parçasıdır. – vivekian2