Patterns_jsオブジェクト指向のjs関数呼び出しまとめ
関数がオブジェクトのプロパティとして保存されると、それをオブジェクトのメソッドと呼び、これがオブジェクトにバインドされます。
var myObject={
name : "myObject" ,
value : 0 ,
increment : function(num){
this.value = typeof(num) === 'number' num : 0; >toString : function(){
return '[Object:' this.name ' {value:' this.value '}]'
}
}
alert(myObject);// [Object: myObject {value:0}]
関数がオブジェクトの関数ではない場合、関数として呼び出されます。これはグローバル オブジェクトへのバインドです。これは言語設計の間違いです。言語設計が正しい場合、内部関数が呼び出されるとき、これは依然として外部関数の this 変数にバインドされているはずです。例:
value : 0 ,
increment : function(num){
this.value = typeof(num) === 'number' : 0; ,
toString : function(){
return '[Object:' this.name ' {value:' this.value '}]'
},
getInfo:function(){
return ( function(){
return this.toString();//内部匿名関数内の this はグローバル オブジェクト ウィンドウを指します
})();
}
}
alert(myObject.getInfo ());//[オブジェクト ウィンドウ]
幸いなことに、簡単な解決策があります。変数を定義してそれに値を代入すると、内部関数がそれにアクセスできるようになります。この変数を介して、次のようなオブジェクトを指します。
increment : function(num){
this.value = typeof(num) === 'number' ? num : 0;
} ,
toString : function(){
return '[オブジェクト:' this.name ' {value:' this.value '}]'; 🎜>getInfo:function() {
var self=this;
return (function(){
return self.toString(); // 変数 self を介して myObject オブジェクトを指す
} )();
}
}
alert(myObject.getInfo());//[Object:myObject {value:0}]
コンストラクターの呼び出しmode
JavaScript はプロトタイプ継承に基づいた言語です。これは、オブジェクトが他のオブジェクトからプロパティを直接継承できることを意味します。言語にはクラスがありません。
コードをコピー
this.toString=function(){
return '[オブジェクト:' this.name ' {value:' this.value '}]'; 🎜>this .target=this;
}
MyObject.prototype.getInfo=function(){
return this.toString();
/*
MyObject を作成する.prototype 同時に Object、myObject は MyObject.prototype のすべてのプロパティを継承します。
これは MyObject のインスタンスにバインドされます
*/
var myObject=new MyObject(); new MyObject() ; //alert(myObject.target===myObject);//ture
//alert(myObject.target.getInfo());//[Object:MyObject {value:0 }]
myObject.increment(10);
otherObject.increment(20);
alert(myObject.value);//10
alert(otherObject.value);//20
呼び出しモードを適用する
JavaScript は関数型オブジェクト指向プログラミング言語であるため、関数にはメソッドを含めることができます。
関数の apply メソッドは、オブジェクトがこのメソッドを持っているかのように、オブジェクトにこのメソッドを持たせます。このとき、これはオブジェクトを指します。
apply は 2 つのパラメータを受け取ります。1 つ目はバインドされるオブジェクト (this が指すオブジェクト)、2 つ目はパラメータ配列
コードは次のとおりです:
function MyObject(name){
this.name=name || 'MyObject';
this.value=0;
this.increment=function(num){
this.value = typeof(num) === '数値' ?番号: 0;
};
this.toString=function(){
return '[オブジェクト:' this.name ' {value:' this.value '}]';
}
this.target=this;
}
function getInfo(){
return this.toString();
}
var myObj=new MyObject();
alert(getInfo.apply(myObj));//[Object:MyObject {value:0}],this指向myObj
alert(getInfo.apply(window));//[object Window],this指向窓

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
