对象缓存理解上有些问题 还请达人帮忙解释

fudg1211 2010-01-14 10:40:20
<script type="text/javascript">
var obj=null;

$(function(){
obj=$("#ddd");//缓存对象
})

function dodo(){

alert(obj.html());//弹出的是fffffff
$("#ddd").html('dddddddddd');

}

function dododo(){
alert(obj.html());//弹出的是dddddddddd 问题:如果obj被缓存了 那么这里应该弹出的是ffffff 为什么现在不是
}
</script>


<div id="dd" onclick="dodo()">dodo</div>
<div id="d" onclick="dododo()">dododo</div>

<div id="ddd">fffffff</div>



为什么弹出的不是ffffff 如题 谢谢
...全文
107 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fudg1211 2010-01-14
  • 打赏
  • 举报
回复
一直以为自己学的差不多了 哎......
谢谢zswang的回复
王集鹄 2010-01-14
  • 打赏
  • 举报
回复
这个和缓存没有关系,只是一个简单的变量赋值。
赋值的类型是引用类型,而非值类型。
引用类型的赋值,不会拷贝变量的内容,是只一个引用,相当于给你一个卡号。
拿到卡号可以取钱,但不等于拿到了钱。
fudg1211 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 antony1029 的回复:]
引用 1 楼 zswang 的回复:
你的银行卡号是“A001”
查看一下余额是100元
然后你把卡号写在纸上“A001”
取出100元,余额是0

之后你按纸上的卡号输入了一遍“A001”,发现怎么余额是0?我刚才不是缓存了?

顶!!经典
[/Quote]

这里对应出来

卡号 dom
纸 缓存
钱 内容

之后你按纸上的卡号输入了一遍“A001”这句话理解成

卡上取钱 而不是在纸上取钱
对应
在dom取内容 而不是在缓存取内容(这明显和在缓存取内容相反)
fudg1211 2010-01-14
  • 打赏
  • 举报
回复
总结下问题

我改变$("#ddd")这个对象的时候是如何改变到缓存的obj这个对象
antony1029 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zswang 的回复:]
你的银行卡号是“A001”
查看一下余额是100元
然后你把卡号写在纸上“A001”
取出100元,余额是0

之后你按纸上的卡号输入了一遍“A001”,发现怎么余额是0?我刚才不是缓存了?
[/Quote]
顶!!经典
qq373591361 2010-01-14
  • 打赏
  • 举报
回复
alert(obj.html());//弹出的是fffffff
$("#ddd").html('dddddddddd');

那他是先查钱再取钱啊。我基础差,还是不明。
fudg1211 2010-01-14
  • 打赏
  • 举报
回复

function dodo(){

alert(obj.html());//弹出的是fffffff
$("#ddd").remove();//注意这里是去除这个dom

}

function dododo(){
alert(obj.html());//现在这里弹出的是ffffff 为什么这里又弹出的是ffffff
}

那该怎么理解这个缓存呢 他的原理是什么 缓存不是得清除才能改变的么
王集鹄 2010-01-14
  • 打赏
  • 举报
回复
$("#ddd") -- 卡号
obj -- 是纸
$("#ddd").html() -- 钱
王集鹄 2010-01-14
  • 打赏
  • 举报
回复

你的银行卡号是“A001”
查看一下余额是100元
然后你把卡号写在纸上“A001”
取出100元,余额是0

之后你按纸上的卡号输入了一遍“A001”,发现怎么余额是0?我刚才不是缓存了?

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧