0
這段代碼有什麼問題?我想做一些類似於循環鏈表的東西。javascript循環鏈表
<script type="text/javascript" charset="utf-8">
function LinkedText(text, nextLinkedText) {
this.text = text;
this.next = nextLinkedText;
this.AsNext= function() {
this.text = this.next.text;
this.next = this.next.next;
return this;
}
}
var first = new LinkedText('first')
var last = new LinkedText('last', first);
first.next = last;
alert(first.text); //show 'firts'
alert(first.AsNext().text); //show 'last'
alert(first.AsNext().text); //show 'last' not 'first' why?
alert(first.AsNext().text); //show 'last'
alert(first.AsNext().text); //show 'last' not 'first' why?
</script>
@ user1973846號你總是返回*此*,而不是* *旁邊的實例。而這種編程風格被廣泛認爲是不好的做法,因爲它違反了參考透明性原則http://en.wikipedia.org/wiki/Reference_transparency_(computer_science \)。你怎麼知道你現在在鏈表中的哪個位置?如果經過一些調用GetNext之後,你想在第一個元素之後有原始的下一個元素,它將會消失! – XORcist
Thx。現在我明白了我的錯誤。在到達定義結構的末尾後,我回到我的第一個對象,因爲我重新分配了它。 – user1973846