我很长时间以来一直对这个问题感到困惑,而且我不知道这个问题属于哪个计算机科学领域。
更具体地说,我们假设我们有一个变量a
并且它是一个对象。 b
是a
的成员,也是对象。
如果b
有一种可能会破坏a
的方法怎么办?这会发生吗?如果可以,b
被销毁后a
是否仍然存在?
我认为这个问题与叶子节点试图删除其父节点不同。
结果会因语言而异吗?
如果描述不够明确,我感到很遗憾,因为我还没有真正遇到真实案例。
答案 0 :(得分:0)
这很大程度上取决于语言。
我认为大多数语言都不允许你明确地销毁一个对象,所以这种情况不会发生。
在许多语言中(例如Java,Perl,JavaScript,Python等),当程序无法再访问对象时,对象会被垃圾收集器破坏,而对象本身就是引用,即a
成员b
只是意味着a
保留对b
的引用,所以如果a
消失,b
没有任何反应(只要你还有一些对b
)的其他参考。
在像C ++这样的语言中,您可以显式地销毁对象。然后会发生什么取决于其他详细信息:如果b
是a
的直接成员,那么b
会与a
一起销毁(如果您仍有指针或引用到b
,它变成"悬空",即尝试访问它是错误的)。另一方面,如果b
只是指向a
或从$(document).ready(function(){
$('#button').click(function(){
var text = $('#input').val();
$.ajax({
type: "GET",
url: "reverse.php",
data:{ text : text },
success: function(data){
console.log(data);
alert(data)
}
})
});
});
引用,那么它就会保持活跃状态。