![](/img/trans.png)
[英]What is the best and most efficient way to get data by JavaScript from EntityFramework database in my case?
[英]What's the efficient way to get the first updated value in my case?
我有以下js代碼段,
var myloop=function(element){
...
var myValue;
element.onClick(){
//GET the first value of variable "myValue"
};
};
myloop.start();
當myloop
啟動時, myloop
函數的主體將被執行一次,並且每次myloop
運行時都會更新局部變量 myValue
。
在myloop
函數中,我有一個事件處理程序 element.onClick()
,此事件處理程序僅對局部變量myValue
的第一個更新值 myValue
。
我想提出一些最有效方法的建議,以獲取處理程序中的“ myValue”的第一個更新值 。
我的實現是在myloop
函數外部定義一個index
和一個Array
,並將所有更新的值存儲在數組內,然后在處理程序中,我從數組中獲得第一個元素,即“ myValue”的第一個更新值。 但是我不是這樣,因為數組中其余的更新值沒有用。
因此,任何人都可以提出其他建議以獲取處理程序中myValue的第一個更新值。
myValue
是范圍界定myLoop
,當你在里面元素onclick
,你會被引用在變量,而不是一個副本的內存空間。
因此,您需要創建一個新的作用域以保留該引用。 這不會創建一個副本,但是由於該范圍不會使用新值進行更新,因此它仍將引用舊副本。
基於對JavaScript的 @ andy-e答案, 了解循環索引的奇怪之處 :
var myloop=function(element){
...
var myValue;
(function (myValue) {
element.onclick = function () {
//GET the first value of variable "myValue"
}
})(myValue);
}
恕我直言,這是解決該問題的“正確”方法。 也許更有效的方法是聲明一個名為firstValue
類的全局變量,並在設置myValue
時設置(如果更改,則可以使用setter作為公共屬性),請檢查firstValue是否為null
。 在這種情況下,無論哪種方式都可以替換該值,而無需執行任何操作。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.