1. ホーム
  2. js

Uncaught TypeError: object is not a function の解決策です。

2022-02-20 21:03:35

1. 参照するサードパーティクラスライブラリのパスが正しくありません。
2、CMDのモジュールとして定義されているサードパーティ製の非CMD仕様のクラスライブラリがない。

jQueryを導入できない状態になったと仮定して、まず1点目のパスが正しいかどうかを、ブラウザのコンソールを開いて入力することで確認します。

<テーブル
1
seajs.resolve('jquery')

jQueryの引数は、設定エイリアスで書いたエイリアスです。Enterを押すと、コンソールにjQueryのパスが出力されるので、このパスにアクセスする必要があることがわかると思います。このパスにjQueryのコードがあると仮定すれば、あなたのパスは正しいです。そうでなければ、理論的にはsea.jsからの相対パスであるあなたのパスを修正する必要があります。

パスが正しい場合、サードパーティの非CMD仕様のライブラリをCMDモジュールとして以下の場所で定義する必要があります。
jQueryの定義メソッドです。

<テーブル
1
2
3
4
define(
function
() {
//def CMD
/*jquery's own code*/
return
 $.noConflict();
});
//end CMD

jQueryプラグインは、以下のように定義されています。

<テーブル
1
2
3
4
5
6
7
8
9
define(
function
() { 
//def CMD
return
 function
($) {
/*jQuery plugin's own code*/
}
});
//end CMD 
// Use require to pass in the jquery when calling
var
 $ = require(
'jquery'
);
require(
'jquery.XXX.js'
)($);

underscore.jsの定義方法です。

<テーブル
1
2
3
4
define(
function
() {
//def CMD