詳細については、コメントを注意深くお読みください。ここでナンセンスをあまり話して、コードをアップロードしましょう。
コードコピーは次のとおりです。
<!doctype html>
<html>
<head>
<メタcharset = "utf-8">
<Title>テストドキュメント</title>
<script type = "text/javascript">
//本質的に、プロパティとメソッドは同じであり、メソッドはプロパティが参照型である関数です。
//オブジェクトには4つのプロパティがあります。
// 1、このキーワードを介してコンストラクターによって定義された属性
// 2、varキーワードを介してコンストラクターによって定義された属性
// 3、コンストラクターのプロトタイプオブジェクトに追加されたプロパティ
// 4、オブジェクトによって動的に追加された属性
//インスタンスのパブリックプロパティ:1、2、3、4は、このキーワードで定義された属性からアクセスできます
//インスタンスのプライベート属性:VARキーワードで定義された2属性。アクセス可能な2
//インスタンスのプロパティを共有:インスタンスによって指摘されたプロトタイプを介して追加された3つの属性。アクセス可能な1,3,4
//インスタンスの静的プロパティ:4つのプロパティがオブジェクトによって動的に追加されました。アクセス可能な1,3,4
//要約:
//インスタンス属性:1、public
// 2、プライベート
// 4、静的
//プロトタイプ属性:3、共有
//これは特権属性として定義されます。すべてアクセス可能
// varは私有財産として定義されます。
//動的に追加された属性はパブリック属性です。私有地にはアクセスできません
//インスタンスオブジェクトによって指されるプロトタイプ属性は、プロトタイプ属性です。プライベート属性にはアクセスできず、公開属性よりも優先度が低い
//インスタンス属性は、主にパブリック属性と特権属性で構成されています。どちらも外部およびプロトタイプのプロパティでアクセスできます。主な違いは、プライベート属性にアクセスできるかどうかです
//プロトタイプ属性の優先順位は、インスタンス属性の優先順位よりも低くなっています。外部およびインスタンス属性にアクセスできます(プライベート属性を除く)
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//パブリックプロパティ:外部環境にさらされる属性。また、オブジェクトの属性でもあります。
//プライベート属性:オブジェクト内の属性にはアクセスできないことがよくあります。コンストラクターレベルでそれらを考慮することは意味があります。
//静的プロパティ:動的に追加されたプロパティ。また、オブジェクトの属性でもあります。
//共有プロパティ:コンストラクターによって生成されたすべてのインスタンスで共有される属性。
function user(){
//パブリックプロパティ:各新しいユーザーインスタンスオブジェクトが持っている属性。
//インスタンス属性であり、すべてのインスタンス属性はメモリを共有しません。
//外部からアクセス可能。
this.name = 'byronvis';
//特権メソッド:新しいユーザーインスタンスオブジェクトごとに使用されているメソッド。
//インスタンスメソッドであり、すべてのインスタンスメソッドはメモリを共有しません。
//外部からアクセス可能。
//パブリックプロパティにアクセスできます。
//私有地にアクセス可能です。
this.sayname = function(){
アラート(this.name);
アラート(this.school);
アラート(年齢); //変数宣言は自動的に高度になります。
アラート(this.sex);
};
//プライベート属性:外部からアクセスできません。
//新しいユーザーインスタンスオブジェクトに対しては、コンストラクターにとってのみ理にかなっています。
var age = 22;
//プライベート方法:外部からアクセスできません。
//新しいユーザーインスタンスオブジェクトに対しては、コンストラクターにとってのみ理にかなっています。
function sayage(){
アラート(年齢);
}
Sayage();
}
//共有属性:共有メモリ。
user.prototype.school = 'zky';
//一般的な方法:パブリック属性にアクセスできます。
//共有メモリ。
user.prototype.sayschool = function(){
アラート(this.school);
アラート(this.name);
アラート(this.sex);
アラート(年齢);
};
var obj = new user();
//静的プロパティ:インスタンスプロパティは動的に追加されています。
obj.sex = 'man';
//静的方法:インスタンスメソッドは動的に追加されています。
obj.saysex = function(){
アラート(this.sex);
アラート(this.name);
アラート(this.school);
アラート(年齢);
};
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
////このキーワードで定義された属性は、動的に追加された属性と本質的に同じであり、インスタンスオブジェクトのパブリック属性と見なすことができることを証明します。
//検証:このキーワードは、動的に追加されたプロパティにアクセスするためのプロパティを定義します
// obj.sayname(); // true
//検証:動的に追加された属性このキーワードで定義された属性にアクセス
// obj.saysex(); // true
//検証:パブリックプロパティにはプライベートプロパティにアクセスします
// obj.sayname(); // true
obj.saysex(); // false
//検証:共有属性アクセスプライベート属性
// obj.sayschool(); // false
</script>
</head>
<body>
テスト文書
</body>
</html>
例の属性とプロトタイプ属性を理解しましたか?この記事は非常に詳細で、誰にでも推奨されています。友達に役立つことを願っています。