1.介紹具有安全作用域的建構函式
function fn(name)
fn.prototype =
}new fn();
//new 出來的fn就是乙個建構函式
//倘若有人忘記寫new,直接呼叫fn();此時var p = fn();可見例項p沒有getf的方法;
//為了解決這種問題;引入了安全作用域的建構函式概念
function fn(name)else
}fn.prototype =
}
2.預設引數
//我們用過一些外掛程式,是可以傳一些配置引數的,當然如果你不傳的話它有預設的值,
function fn(params);
var params = params||{};
for (var x in defaults)
}this.params= params;//得到的this.params,在方法中呼叫;
}fn.prototype =
3.方法到底寫到this裡還是prototype 裡
//舉個例子
//①function fn()
}//or...
//②function fn(){}
fn.prototype.getc = function(){}
//大家可能都會有這樣的糾結,getc到底寫到this裡還是原型裡
//這要從記憶體說起;寫到原型上,每執行乙個例項,getc不需要開闢新的記憶體
//故,可以把一些純計算的方法,寫原型上,如果方法和例項本身有關,應該寫道this中
4.方法名防止衝突處理
//如果在引入你的外掛程式之前,window下已經有fn的變數;怎麼辦,你如果這麼搞; 豈不是把別人寫的fn搞掉了
//此時應該把fn的控制權交出,自己用fn2輸出
(function()
fn.prototype =
/**這裡暫時沒寫好;
*/ if(window.fn)else
}())
5.對外輸出的規範化exprot 、amd 完整寫法
;(function(global) ;
//覆寫原型鏈,給繼承者提供方法
myplugin.prototype =
};//相容commonjs規範
if (typeof module !== 'undefined' && module.exports) module.exports = myplugin;
//相容amd/cmd規範
if (typeof define === 'function') define(function() );
//註冊全域性變數,相容直接使用script標籤引入該外掛程式
global.myplugin = myplugin;
//this,在瀏覽器環境指window,在nodejs環境指global
//使用this而不直接用window/global是為了相容瀏覽器端和服務端
//將this傳進函式體,使全域性變數變為區域性變數,可縮短函式訪問全域性變數的時間
})(this);
js寫乙個外掛程式
分號開頭,用於防止 壓縮合併時與其它 混在一起造成語法錯誤 而事實證明,uglify壓縮工具會將無意義的前置分號去掉,我只是習慣了這麼寫 function 立即執行函式,閉包,避免汙染全域性變數 通常乙個外掛程式只暴露乙個變數給全域性供其它程式呼叫 還有其它寫法,運算子 函式體 括號 例 funct...
寫專案常用的js外掛程式合集
artdialog 彈出視窗 mt97 日曆外掛程式 formvalidator 表單驗證 easyui 前端框架 buttons 按鈕樣式庫 font awesome 圖示字型庫 ueditor 網頁內容編輯外掛程式 echarts 圖表外掛程式 cropzoom 剪下 gridly 拖放外掛程式...
VuePress教程之深入理解外掛程式API
本文目錄 1 vuepress教程之深入理解外掛程式api 2 外掛程式 2.1 暖暖身 2.2 外掛程式如何運作 3 準備 3.1 markdown 3.2 pages 3.3 ready 4 自定義的指令 5 dev 5.1 建立 webpack 配置 5.2 dev server 6 buil...