Vue methods: 里面的函式 假如包括ajax 請求,需要用到vue變數的時候,無法使用this.xx 這種方式 獲取,,只能先宣告一個全域變更,用以下的方式
giveprize() {
//獲取select值
fha01 = this.hha01;
$.ajax({
url: "/Hpaward/Editbj",
type: "POST",
data: jsdata,
dataType: "JSON",
contentType: "application/json",
success: function (res) {
if (res.flag) {
//動態創建節點
var li = document.createElement('li');
li.innerHTML = fha01;
為什么呢,
uj5u.com熱心網友回復:
又不是c#, Javascript的你以為 this 是固定不變的?在 JavaScript 中 this 不是固定不變的,它會隨著執行環境的改變而改變。
在方法中,this 表示該方法所屬的物件。
如果單獨使用,this 表示全域物件。
在函式中,this 表示全域物件。
在函式中,在嚴格模式下,this 是未定義的(undefined)。
在事件中,this 表示接收事件的元素。
uj5u.com熱心網友回復:
javascript 并不是面向物件語言,它頂多是“基于物件的”語言。它的 this 是用來指向呼叫函式的物件,或者是呼叫函式的陳述句使用 bind(.....) 方法所明確傳遞進來的 this 引數。在面向物件語言中,this 可以靠譜地指向方法所屬于的物件實體。而非面向物件語言,例如js,其 this 只是一個隨隨便便可以修改值的引數而已。uj5u.com熱心網友回復:
設計一個軟體,你要么設計一個明確的物件,要么將確定的參考引數通過 giveprize 傳遞。不要濫用“全域變數”。uj5u.com熱心網友回復:
你用的jquery?試下箭頭函式吧,如果你發現此this不是你想要的this的話。
success: (res) => {
......
}
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arrow_functions
javascript是個神奇的語言......
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/251259.html
標籤:ASP.NET
下一篇:求教:C#監聽掃碼槍,決議二維碼
