C++ で何かを定義する方法を知っています。例えば:
#define ce cout<<"\n";
今、ce出力されるコードのどこかを使用するcout<<"\n";
と、このJavaSvriptで試しています:
#define go document.write
だから、何かを表示/出力したい場合は、書きたい
go('Great!');
これGreat!でブラウザに出力されます。しかし、このdefineメソッドは JavaScript では機能しません
C++ で何かを定義する方法を知っています。例えば:
#define ce cout<<"\n";
今、ce出力されるコードのどこかを使用するcout<<"\n";
と、このJavaSvriptで試しています:
#define go document.write
だから、何かを表示/出力したい場合は、書きたい
go('Great!');
これGreat!でブラウザに出力されます。しかし、このdefineメソッドは JavaScript では機能しません
別のオプションは withObject.definePropertyです。これにより、書き込み可能、構成可能、または列挙可能ではないものを設定できます...特にwindowオブジェクトに設定できます(したがって、グローバルアクセスがあります)。これを試して:
Object.defineProperty(window, "go", {
enumerable: false,
configurable: false,
writable: false,
value: function (msg) {
console.log(msg);
}
});
デモ: http://jsfiddle.net/xm3mT/
valueを匿名関数として設定する代わりに、次bindのように を使用できます。
value: console.log.bind(console)
私の最初の例を使用しても問題ありませんが。
の使用については正確にはわかりませdocument.writeんが、通常は使用したくないでしょう...もちろん、それはあなた次第です。それにもかかわらず、私console.logは例として代わりに使用しました。
参考文献:
Object.definePropertyドキュメント - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/definePropertyObject.definePropertyブラウザーの互換性 - http://kangax.github.io/es5-compat-table/#Object.definePropertyFunction.prototype.bindドキュメント - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bindFunction.prototype.bindブラウザーの互換性 - http://kangax.github.io/es5-compat-table/#Function.prototype.bind