以問題開始: function Base(){}var base = new Base() 上面兩行代碼會建立幾個對象(object)? 要回答這個問題,先明確一下Javascript裡object的概念。 Objects 在Javascript裡,幾乎一切都是object(Arrays、Functions、Numbers、Objects……),而沒有C#裡的class的概念。object的本質是一個name-value
JavaScript 的成功讓人津津樂道,為 Web 網頁編寫 JavaScript 代碼已經是所有 Web 設計師的基本功,這門有趣的語言蘊藏著許多不為人熟知的東西,即使多年的 JavaScript 程式員,也未能完全吃透。本文從7個方面講述 JavaScript 中那些你不很熟知但非常實用的技巧。簡略語句 JavaScript 可以使用簡略語句快速建立對象和數組,比如下面的代碼:Code highlighting produced by Actipro CodeHighlighter
複製代碼 代碼如下: <script type="text/javascript"> function createArray() { var arr = new Array(); for (var i = 0; i < 10; i++) { arr[i] = function () { return i; } } return arr; } var funcs = createArray(); for (var i = 0; i < funcs.length; i++)
順便提示一下: 詞法範圍:變數的範圍是在定義時決定而不是執行時決定,也就是說詞法範圍取決於源碼,通過靜態分析就能確定,因此詞法範圍也叫做靜態範圍。 with和eval除外,所以只能說JS的範圍機制非常接近詞法範圍(Lexical scope)。 下面是一個簡單的使用全域變數的閉包執行個體: 複製代碼 代碼如下: var sWord="Hello,Welcome to web前端開發工程師的部落格,請多多指教。" function disWord(){ alert(sWord); }
標準的Get和Set訪問器的實現 複製代碼 代碼如下: function Field(val){ this.value = val; } Field.prototype = { get value(){ return this._value; }, set value(val){ this._value = val; } }; var field = new Field("test"); field.value="test2"; //field.value will now return
1:移動圖層 獲得點的x軸y軸座標,從而進行絕對位置(注意:豎拉框會影響 x 軸 y 軸座標值) 複製代碼 代碼如下: var x,y,z,down=false,obj function init(){ obj=event.srcElement //事件觸發對象 obj.setCapture() //設定屬於當前對象的滑鼠捕捉 z=obj.style.zIndex //擷取對象的z軸座標值 //設定對象的z軸座標值為100,確保當前層顯示在最前面 obj.style.zIndex=100