はしがき
クラスベースのオブジェクト: オブジェクト指向言語における明白な記号は、テンプレートに似たクラスを通じて、同じプロパティとメソッドを持つ多数のオブジェクトを作成できることを誰もが知っています。ただし、ECMAScriptにはクラスという概念がないので、当然クラスベース言語のオブジェクトとは異なります。
js のオブジェクト: 基本的な値、オブジェクト、関数を含めることができる、順序付けされていない属性のコレクション。つまり、js のオブジェクトは、特定の順序ではない値のセットであり、オブジェクトの各プロパティまたはメソッドには独自の名前があり、それぞれの名前が値に対応します。
オブジェクトを理解する
オブジェクトの作成方法
1 オブジェクトを作成する最も簡単な方法は、Object インスタンスを作成し、それにプロパティとメソッドを追加することです。
たとえば
var person = new Object(); person.name='谦龙'; person.sex='男'; person.sayNameAndSex=function(){ console.log(this.name,this.sex) } person.sayNameAndSex(); // 谦龙 男
2 オブジェクト リテラル形式を使用します
たとえば
var person={ name:'谦龙', sex:'男', sayNameAndSex:function(){ console.log(this.name,this.sex) } } person.sayNameAndSex(); // 谦龙 男
属性のタイプ
ECMAScript には、データ属性とアクセサー属性という 2 種類のデータ属性があります。
データ属性
データ属性には、データ値の場所が含まれます。この場所で値の読み取りと書き込みが可能です。その動作を説明する 4 つのプロパティがあります。
1.[[Configurable]]: 属性を削除によって削除して再定義できるかどうかを示します...デフォルト値は true
2.[[Enumerable]]: ループ内の for を通じて属性を返すことができるかどうかを示します...デフォルトは true
3.[[Writable]]: 属性の値を変更できるかどうかを示します...デフォルトは true
4.[[Value]]: この属性の値を示します。デフォルトは未定義です
。プロパティのデフォルトのプロパティを変更するには、ES5 Object.defineProperty() メソッドを使用する必要があります。このメソッドは、プロパティが配置されているオブジェクト、プロパティの名前、プロパティのプロパティを説明するオブジェクトの 3 つのパラメータを受け取ります。 (configurable、enumerable、writable、value)、それらの 1 つ以上を設定すると、対応する特性を変更できます
デモ
var person={}; Object.defineProperty(person,'name',{ configurable:false,//表示不允许通过delete删除属性 writable:false,//表示不允许重写 ennumerable:false,//表示不允许通过for in遍历 value:'谦龙'//设置该对象中属性的值 }) person.name='谦龙2';//尝试重新设置 结果不生效 delete person.name;//尝试删除 结果不生效 for(var attr in person){ console.log(person[attr]);// false } console.log(person.name);//谦龙
注: configurable を false に設定した後、再度 true に変更することはできません。また、Object.defineProperty() メソッドを呼び出すとき、configurable、ennumerable、および writable のデフォルト値は false です。
アクセサーのプロパティ
アクセサー プロパティにはデータ値が含まれません。これらには、ゲッター関数とセッター関数のペアが含まれています (ただし、これら 2 つの関数は必須ではありません)。アクセサー プロパティを読み取るときに、この関数が呼び出されます。 valid アクセサ プロパティを書き込むとき、setter 関数が呼び出され、新しい値が渡されます。この関数はデータの処理方法を担当します。
アクセサーのプロパティには次の特性があります
[[configurable]] は、削除によって属性を削除して新しい属性を定義できるかどうかを示します
[[enumerable]] は、返された属性を for in ループで走査できるかどうかを示します
[[get]] プロパティの読み取り時に呼び出される関数、デフォルトは未定義です
[[set]] 関数の作成時に呼び出される関数。デフォルト値は未定義です。
注: アクセサー プロパティは直接定義できないため、Object.defineProterty()
を通じて定義する必要があります。デモ
var book={ _year:2015, //这里的下划线是常见的记号,表示只能通过对象的方法才能访问的属性 edition:1 } Object.defineProperty(book,'year',{ get:function(){ return this._year; //即默认通过 book.year获取值的时候 返回的是 boot._year的值 }, set: function (value) {//在对 boot.year设置值的时候 默认调用的方法 对数据进行处理 var _year=this._year; if(value > _year){ this._year=value; this.edition+=value-_year; } } }) book.year = 2016; console.log(book.year,book.edition); // 2016 2
複数の属性を定義する
ES5 では、Object.defineProperties() メソッドを使用してオブジェクトに複数のプロパティを追加できます。このメソッドは 2 つのオブジェクト パラメーターを受け入れます。最初のパラメーターは、プロパティを追加および変更するオブジェクトであり、2 番目のパラメーターは属性は、最初のオブジェクトに追加および変更される属性に対応します。
デモ
var book={}; Object.defineProperties(book,{ _year:{ value:2015, writable:true //注意这里设置成true 才可以 "写" 默认是false }, edition:{ value:1, writable:true //注意这里设置成true 才可以 "写" 默认是false }, year:{ get:function(){ return this._year; }, set: function (value) { var _year=this._year; if(value > _year){ this._year=value; this.edition+=value-_year; } } } }) book.year=2016; console.log(book.year,book.edition); // 2016 2
オブジェクトプロパティのプロパティを読み取る
ES5 の Object.getOwnPropertyDescriptor() メソッドを使用すると、特定のプロパティの記述子を取得できます。
このメソッドは、属性が配置されているオブジェクトと、読み取られる記述子の属性名という 2 つのパラメーターを受け取ります。返されるのはオブジェクトです。データ属性の場合、返される属性は構成可能、列挙可能、書き込み可能、値です。アクセサー属性の場合、返される属性は構成可能、列挙可能、get、set
です。デモ
var book={}; Object.defineProperties(book,{ _year:{ value:2015, writable:true }, edition:{ value:1, writable:true }, year:{ get:function(){ return this._year; }, set: function (value) { var _year=this._year; if(value > _year){ this._year=value; this.edition+=value-_year; } } } }) //对象遍历函数 function showAllProperties(obj){ for(var attr in obj){ console.log(attr+':'+obj[attr]); } } var descriptor= Object.getOwnPropertyDescriptor(book,'_year');//数据属性 var descriptor2= Object.getOwnPropertyDescriptor(book,'year');//访问器属性 showAllProperties(descriptor); console.log('============================'); showAllProperties(descriptor2);

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
