Uncaught TypeError: object is not a function的解決方法
阿新 • • 發佈:2019-02-01
1、引用的第三方類庫的路徑不對。
2、沒有將第三方非CMD規範的類庫定義成CMD的模組
假設我們現在jQuery無法引入,首先我們要檢查第一點路徑是否正確,開啟瀏覽器的控制檯,在控制檯輸入
?1 |
seajs.resolve('jquery’)
|
引數中的jQuery是你在配置中alias裡面寫的別名,敲回車之後你會發現控制檯會輸出jQuery的路徑,你需要訪問一下這條路徑,假設這條路徑有jQuery的程式碼,說明你的路徑正確,否者你得修改你的路徑,理論上路徑是相對於sea.js的。
如果你的路徑正確,那麼你需要將第三方非CMD規範的類庫定義成CMD的模組:
jQuery的定義方法:
1 2 3 4 |
define( function ()
{ //def
CMD
/*jquery
自身的程式碼*/
return
$.noConflict();
}); //end
CMD
|
jQuery外掛的定義方法:
?1 2 3 4 5 6 7 8 9 |
define( function ()
{ //def
CMD
return
function ($)
{
/*jQuery外掛的自身程式碼*/
}
}); //end
CMD
//
呼叫的時候使用require要將jquery的傳入
var
$ = require( 'jquery' );
require( 'jquery.XXX.js' )($);
|
underscore.js的定義方法:
?1 2 3 4 |
define( function ()
{ //def
CMD
/*underscore自己的程式碼*/
return
_.noConflict();
}); //end
CMD
|
對於自己的程式碼:
?1 2 3 4 |
define( function ()
{ //def
CMD
/*自身的程式碼*/
return
XXX;
}); //end
CMD
|