首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 對象字面量中定義方法並調用:this 指向與初始化執行順序注意事項

     編輯:程式設計綜合問答

問題代碼

var aa = {
    change: function() {
        $("#name").value = '已發送'; // 錯誤:jQuery 對象無 value 屬性
    }
};
aa.change(); // 調用

錯誤點

  1. $("#name") 返回 jQuery 對象,**無 value 屬性**;應用 .val('已發送') 或 [0].value = ...。
  2. 對象字面量定義時方法**不會自動執行**,需顯式調用 aa.change()。

正確寫法

$(function() { // DOM 就緒後
    var aa = {
        change: function() {
            $("#name").val('已發送'); // 正確
        }
    };
    aa.change(); // 立即調用
});

關鍵知識

  • 對象字面量只是定義,不自動執行內部函數。
  • jQuery 設置輸入框值用 .val(),原生 DOM 用 .value。
  • 若需構造函數自動執行,改用類/構造函數模式:
    function AA() { this.change = function() {...}; this.change(); } new AA();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved