5

Google の Dart 言語では、ネイティブの js 関数を呼び出すことができないようです (たとえば、jQuery または既存の .js コードを使用して)。

CoffeeScript は上記のいずれかを許可しますか?

4

4 に答える 4

10

はい、coffescript で任意の JavaScript ライブラリを使用できます。通常の方法で lib をインクルードし、coffeescript の「スタイル」でコードを記述します。したがって、jquery の例では次のようになります。

$(function () {
    $('.something').on('click', function () {
        console.log('you clicked me');
    });
});

になる

$ ->
    $(".button").on "click", ->
        console.log('you clicked me');

簡単なグーグルで、このテーマに関する興味をそそるブログがいくつか見つかりまし

コーヒースクリプトアプリケーションでのjqueryとバックボーンの使用に焦点を当てた章を持つ実用的なプログラマブックもあります

nb指摘したように、coffeescript の「コンパイラ」は関数が存在することを確認せず、構文が正しいことのみを確認することを覚えておいてください

于 2012-06-15T16:33:45.920 に答える
5

jQuery およびネイティブ JavaScript 関数を使用できます。正しい CoffeeScript 構文でそれらを記述する必要があるだけです。

CoffeeScript はソースからソースへのコンパイラであることに注意してください。CoffeeScript を JavaScriptに変換します。指定された関数が存在するかどうかはわかりません。

したがって、この CoffeeScript を記述した場合、問題なくコンパイルされます。

words = ["hello", "world"]
alert word.touppercase() for word in words

touppercase()JavaScript では定義されていないことに注意してください。である必要がありますtoUpperCase()。それにもかかわらず、CoffeeScript は次のように出力します。

var word, words, _i, _len;

words = ["hello", "world"];

for (_i = 0, _len = words.length; _i < _len; _i++) {
  word = words[_i];
  alert(word.touppercase());
}

これをブラウザーで実行すると、CoffeeScript エラーではなく、JavaScript エラーとしてエラーが発生します。CoffeeScript サイトの「Try CoffeeScript」リンクを使用して、翻訳がどのように行われるかを確認し、実行してみてください。Panels オプションを JavaScript の代わりに CoffeeScript を使用するように変更して、 jsFiddleで試すこともできます。

于 2012-06-15T17:05:54.400 に答える
2

CoffeeScriptJavaScript です。

より正確に言えば、CoffeeScript の唯一の目的は、JavaScript の記述をより簡単で「よりクリーンな」体験にすることです。作成した CoffeeScript コードはすべて Javascript にコンパイルされます。

CoffeeScript コンパイラは、コードの構文のみをチェックします。参照している変数と関数が実際に存在するかどうかを確認する必要はありません (とにかくファイルを実行すると、これを行うことは不可能です)。したがって、CoffeeScript コードで「ネイティブ」JavaScript 関数を呼び出すことは確かにできますが、単純な JavaScript 関数呼び出しとして反対側に出てくるため、それは簡単です。

于 2012-06-15T18:21:00.840 に答える