我在一个数组中有很多显示对象,我不断添加并从舞台中删除.删除后,它们不再使用.
考虑到displayObject不在显示列表中,并且没有事件监听器......如果我使用splice将其从数组中删除,它是否会被垃圾收集?
如果我先将对象置空,会更安全吗?
myArray[2] = null;
myArray.splice(2,1);
Run Code Online (Sandbox Code Playgroud) 出于某种原因,这两个示例不会返回相同的值.
例1
var ref = firebase.database().ref('fruits').orderByChild('name').equalTo('Mango')
ref.once('value',function(snapshot){
console.log(snapshot.val())
})
Run Code Online (Sandbox Code Playgroud)
返回:
{
"mango":{"name":"Mango"}
}
Run Code Online (Sandbox Code Playgroud)
例2
var ref2 = firebase.database().ref('fruits')
ref2.orderByChild('name').equalTo('Mango')
ref2.once('value',function(snapshot){
console.log(snapshot.val())
})
Run Code Online (Sandbox Code Playgroud)
返回:
{
"apple":{"name":"Apple"},
"banana":{"name":"Banana"},
"mango":{"name":"Mango"},
"strawberry":{"name":"Strawberry"}
}
Run Code Online (Sandbox Code Playgroud)
示例2中的差异在于过滤函数在创建之后应用于引用,原则上应该类似于方法链接.
如果这不是错误,那么在创建引用后如何应用这些过滤器函数?
我有一个HTTP Firebase云功能,偶尔可能需要很长时间才能完成.对于这个特定的用例,我不希望我的用户等到函数完成后才能收到200响应.
所以我res.status(200).send();照常做,但不是在执行结束时这样做,我已经尝试在函数的开头做它.问题是这会停止执行.
作为一种解决方法,我正在考虑将重负载移动到不同的函数并从实时数据库中的写入触发它,但是将这个逻辑放在单个函数中要容易得多.
有没有解决这个限制的方法?
我来自AS3背景.在AS3中,当您将对象分配给var时,不将对象复制到var,var将成为对象的引用.
var myObject = new MyClass();
myObject.name = "Bananas";
var myRef = {};
myRef.ref = myObject;
trace(myRef.ref.name); // Bananas
myObject.name = "Mango";
trace(myRef.ref.name); // Mango
myObject = null;
trace(myRef.ref); // null
Run Code Online (Sandbox Code Playgroud)
在Objective C,AFAIK中,当你将一些对象分配给另一个对象的某个属性时,"对象被复制.我的困惑来自于使用temp对象后你可以释放它.
NSMutableString* myString = [[NSMutableString alloc] initWithString:@"Hello"];
[myLabel setText:myString];
[myString release];
Run Code Online (Sandbox Code Playgroud)
...如果你能释放它意味着你不再需要它了.所以它被复制了?或者myLabel中的"text"属性是对myString的引用?
你可以猜测我刚开始在Objective C的世界里.
TIA
这件事让我疯了.
所以我通过AJAX加载一些简单的HTML,一旦它加载到DOM上我就这样做了.
$('#wrap a.link').click(function(e) {
e.preventDefault();
alert("asdasdad");
});
Run Code Online (Sandbox Code Playgroud)
它只是不会阻止链接导航到href属性中的url.
我的语法似乎正确,我确保元素在DOM中,并且函数找到了a.link元素.
$("#wrap a.link").each(function(key, value) {
console.log("found a link"); // this shows up in the console
});
Run Code Online (Sandbox Code Playgroud)
我也试过使用off(),stopImmediatePropagation()以防万一其他事件可能会干扰,但没有.我也尝试each()使用相同的结果在循环内绑定事件.
什么可能导致这种行为?