ホームページ > ウェブフロントエンド > jsチュートリアル > javascript_javascript スキルのオブジェクトと関数の関係を検証するための 3 つの簡単なコード

javascript_javascript スキルのオブジェクトと関数の関係を検証するための 3 つの簡単なコード

WBOY
リリース: 2016-05-16 18:24:18
オリジナル
1086 人が閲覧しました

この記事では、楼竹の理解力と実践能力がまだ成熟していないとき、李占先生から多くのことをコピーし、「知識の備蓄」としてブログに書いたと言われています。今回もそれは避けられない。第 5 章に目を移したとき、私はこの章の 2 番目の段落に深く惹かれ、感銘を受けました。「関数はオブジェクトの特性をすべて備えています。関数をオブジェクトとして呼び出すことができます。実際、関数はオブジェクトですが、通常の関数とは異なります」オブジェクトには追加の括弧 "{}" 演算子があり、これは関数のロジックを実行するために使用されます。つまり、関数自体は呼び出すことができますが、まったく同じであることを除いて、一般的なオブジェクトを呼び出すことはできません。短い言葉ですが、オブジェクトと機能の関係についての奥深い説明です。以下では、Lou Zhu が、彼が作成したいくつかの簡単なコードを通じて、JavaScript の組み込みオブジェクトと関数の関係を示します。

1. Function is Object、Object is Function

コードをコピーします コードは次のとおりです。

alert(FunctioninstanceofObject); // true
alert(ObjectinstanceofFunction); //true

ご覧のとおり、 Instanceof 演算子の場合、関数はオブジェクトであり、オブジェクトは関数です。
2. 1 が true なので、Object は Function によって拡張されたプロトタイプ メソッドを「取得」できますか?
コードをコピー コードは次のとおりです。

alert(Object.funcMethod) ; // 未定義
Function.prototype.funcMethod = function() {
/*ここに関数メソッドのコードがいくつかあります*/
}
alert(Function.funcMethod); funcMethod);
alert(Function.funcMethod === Object.funcMethod); //true

関数用に拡張したプロトタイプ メソッド funcMethod は、魔法の機能を実現しました。 「ただで何かを手に入れる」。

3. 1 と 2 が両方とも true なので、Function は Object extension のプロトタイプ メソッドを「取得」できますか? !
コード

コードをコピー コードは次のとおりです。
alert( Function.objMethod ); // 未定義
Object.prototype.objMethod = function() {
/*ここにオブジェクト メソッドのコードがいくつかあります*/
}
alert(Object.objMethod); alert(Function .objMethod); //true か false か?


上記のコードがポップアップ表示されます。 毛織物?率直に言って、この記事全体にわたる Lou Zhu の率直かつ単純な発言に基づいて、結果はすでにご存知のはずです。ここでは答えを発表しません。
最後に、Rong Louzhu がナルシストであることを誇りに思います。個人的には、上記の 3 つのコードは、「関数がオブジェクトの本質である」ことを検証する元の本のコードよりも説得力があるはずだと思います。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート