1. 程式人生 > >Uncaught TypeError: object is not a function的解決方法

Uncaught TypeError: object is not a function的解決方法

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