3

サーバー側のPhantomJSスクリプト内でresemble.jsを使用しようとすると、未定義のエラーがスローされ、{objectObject}を超えてログが浸透することはありません。phantom / examples / universe.jsファイルの後にパターンを作成し、元のresemble.jsファイルを回転させてみました。

(function (_this) {
  _this['resemble'] = function (fileData) {
    ...
  }
}(this));

の中へ

exports.create = function () {
  (function (_this) {
    _this['resemble'] = function (fileData) {
      ...
    }
  }(this));
};

と同様

exports.create = function () {
  resemble = function (fileData) {
    ...
  }
};

まず、そのぶら下がりは一体何をするの(this)でしょうか?次に、そのオブジェクトをログに記録するにはどうすればよいですか?最後に、そのファイルをラップする適切な方法は何ですか?

ありがとう!

4

1 に答える 1

1

phantomJS内から類似を実行するには、https: //github.com/Huddle/PhantomCSSを確認してください。クローンを作成すると、すぐに稼働します。Windowsを使用していない場合は、phantomjs.exeをシステムに適したバイナリに置き換えてください。

(this)最後にを正しく貼り付けていません。とにかく、それはIIFEです。関数の最初の引数は、最後_thisののスコープ付きコピーです。(this)

_this関数本体内にダンプするか、関数本体this外にログを記録するだけで、ログに記録できます。

javascriptのこの構成は何ですか?も参照してください。および高度なJavascript:この関数が括弧で囲まれているのはなぜですか?[複製]

于 2013-03-09T01:27:56.773 に答える