ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript クロージャーの高度な使用例_JavaScript スキル

JavaScript クロージャーの高度な使用例_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 17:29:581185ブラウズ

拡張子
コード:

コードをコピー コードは次のとおりです:

var blogModule = (function ( my) {
my.AddPhoto = function () {
//内部コードを追加
};
return my;
}(blogModule));

言う:
それ自体をメソッドに渡し、メソッドの拡張を実装します。これは部品を組み立てるのと少し似ています
コード:
コードをコピー コードは次のとおりです。

var blogModule = (function (my) {var oldAddPhotoMethod = my.AddPhoto;
my.AddPhoto = function () { // オーバーロードされたメソッド。古いメソッドはまだ oldAddPhotoMethod を通じて呼び出すことができます。}; return my;}(blogModule));

言う:
利点は、次のように呼び出せることです。前の方法。
クローンと継承
コード:
コードをコピー コードは次のとおりです:

var blogModule = (function (old) { var my = {}, key; for (key in old) { if (old.hasOwnProperty(key)) { my[key] = old[key]; } } var oldAddPhotoMethod = old.AddPhoto; my.AddPhoto = function () { // クローン作成後は、引き続き oldAddPhotoMethod を呼び出すことができます } (blogModule);

言う:
単純なクローン作成の実装
ファイル間でプライベート オブジェクトを共有する
コード:
コードをコピーコードは次のとおりです:

var blogModule = (function (my) { var _private = my._private = my._private || {}, _seal = my._seal = my._seal || function () { my._private を削除; my._unseal を削除 }, _unseal = my._unseal = _unseal; = _unseal; }; return my; } (blogModule || {}));

と言うと、
blogModule._seal() がロックを解除して内部変数をプライベート化します。この実装はベストではないと思いますが、このロック解除とロック機能を学ぶことができます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。