new Object()不赋值给变量,会创建对象吧,创建的对象在堆中吧,在栈中占用内存吗?创建的对象的引用计数为0吗?什么时候被回收?没有变量的引用指向创建的对象吧?那么这个对象随时会被回收吗?
解决方案 »
- 如何通过JS判断radio button
- javascript原型问题
- javascript前台错误提示
- 为什么这样还会提交表单?
- document.body.clientHeight得出值为0
- 改变form里面的name属性内容,网页就报错
- <select>下拉如何可以禁止選擇又可以傳值?象readonly功能
- 寻求会员QQ,MSN好友上线的提示特效!
- 高手来解答:在CSS中如何区分<input type=text>和<input type=button>,搞定加100分
- 怎么才可以做到像http://www.new-dns.com/一样点击“【点击这里进入建站基地】”后打开一个没有标题栏的窗口。
- 怎样给jqgrid中的特定行显示特定颜色?怎样在单元格中增加超链接?
- 新人请教 笔记本写的应该怎么改呢?
参考立即执行函数 (function(){}){};
this.elm = document.getElementById('divId');
}
Obj.prototype.addEvent = function() {
var that = this;
that.elm.onclick = function() {
alert('elm');
}
}
(new Obj()).addEvent();如果这样,那么那个new出来的Obj的实例还被回收吗?
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
function Obj() {
this.elm = document.getElementById('divId');
}
Obj.prototype.addEvent = function() {
var that = this;
that.elm.onclick = function() {
alert('elm');
}
}
$(document).ready(function(){
(new Obj()).addEvent();
});
</script>
</head>
<body>
<div id='divId'>sfsfsfsfsfsf</div>
</body>
</html>刚才没运行,现在可以了
this.elm = document.getElementById('divId');
}
Obj.prototype.addEvent = function() {
var that = this;
that.elm.onclick = function() {
alert('elm');
}
}放ready里面不可以?
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
function Obj() {
this.elm = document.getElementById('divId');
}
Obj.prototype.addEvent = function() {
var that = this;
that.elm.onclick = function() {
alert('elm');
}
}
(new Obj()).addEvent();
});
</script>
</head>
<body>
<div id='divId'>sfsfsfsfsfsf</div>
</body>
</html>这样不能运行,把function Obj() {
this.elm = document.getElementById('divId');
}
Obj.prototype.addEvent = function() {
var that = this;
that.elm.onclick = function() {
alert('elm');
}
}这个放外面就可以了,不知道什么原因
(new Obj()).addEvent();
var that = this;
this就是对象的引用
把this赋值给that
而that又因为闭包的关系不会被回收。
所以new出来的Obj的实例也不会被回收
new Obj().addEvent();
new Obj().addEvent();作用域链形成时间是什么时候啊,比如里面的函数,当没被调用,外面的函数也没被调用时,里面函数作用域链形成了吗?