javascript基礎学習一--対象に向ける

13153 ワード

対象向けプロフィール
プロセスに向かって亲力亲为であり、事の大小を问わず、一歩一歩と続いて、スキップできません.
対象に向かって:対象を探して、結果を指揮します.(出前を注文します.どのように料理するかに関心がないので、結果を求めます.)
関数も対象で、関数のパッケージ性を指します.(核心はどうやって実現されるかは教えないが、使ってもいいです.)
対象に向かうのは実質的には向こう向きのプロセスのパッケージですが、向こう向きのプロセスの代替ではありません.
jqでは
$(‘ #dv’) // id=dv   

$( ‘ <div>div>’).appendTo(body)//  div   body 

$(body).append(‘<div>div>’) 2  
 
対象向け開発とは何ですか?使用対象開発
js対象特性(*)に向けた抽象的、パッケージ、継承
jsの対象:キーパッドのセット
キャラクターを描く:name、age、gender     {name:‘zs’,age:18,gender:1}
 
抽象:
一つのオブジェクトで一つのデータを記述する必要がある場合は、このオブジェクトのコアデータを抽出する必要があります.
特定の条件なしでは何か分かりません.
 
パッケージ:
オブジェクトは、データと機能を組み合わせたパッケージです.
jsオブジェクトはキーのセットです.
キーの値がデータであれば(基本データ、複合データ、空データ)
キーの値が関数であれば、方法と呼びます.
オブジェクトは属性と方法をパッケージ化します.
方法はプロセスをカプセル化することです.
 
継承:
簡単に理解すると、自分が持っていないので、他の人のを引き継いで持ってきます.多重化を実現する手段で、他人のを持ってきて使う.
理解:対象言語の中で(例えば、java、c++)類は模版であり、オブジェクトに対してどのような属性方法があるべきかを規定しています.jsは構造関数を使って属性を定義する方法です.
もう一つのモデルのメンバーは、このモデルから作成されたオブジェクトは同時に二つのモデルオブジェクトを持つ.
jsは明確に文法を継承していません.基本的には継承の理念に従って対象メンバーの拡充を実現し、継承を実現します.
最も簡単な方法は混入(mix)といいます.
function mix(o1,o2) {  // jq        extend
            for (var k in o2) {
                o1[k] = o2 [k];
            }
        }
        var o1 = { name :"zhangdan"}
        var o2 = { age : 19};
        
        mix (o1, o2); //   o2        o1 ,  o1         

       //1、     
        //2、            
        //      
        //
        //1、    div  
        var div = document.createElement('div');
        //2、 div     
        document.body.appendChild(div);
        //3、  div   
        div.style.border = '1px solid red';
     
      //
        //1、    (     ):div,body
        //2、       (    ):  ,    
        function DivTag() {
            this.DOM = document.createElement('div');
            this.appendTo = function (node) {
                node.appendChild( this.DOM);
            };
            this.css = function(option) {
                for (var k in option) {
                    this.DOM.style[k] = option[k];
                }
            }
        }
            var divTag = new DivTag();
            divTag.appendTo(document.body);
            divTag.css({
                'border': '10px solid red',
                'width': '400px',
                'height': '100px',
                'background-color': 'blue'
            });
      
 //
        //1、    (     ):div,body
        //2、       (    ):  ,    
        function DivTag() {
            this.DOM = document.createElement('div');
            this.appendTo = function (node) {
                node.appendChild( this.DOM);
                return this;//       undefined       
            };
            this.css = function(option) {
                for (var k in option) {
                    this.DOM.style[k] = option[k];
                }
                return this;;//       undefined       
            }
        }
            new DivTag().appendTo(document.body).css({
                'border': '10px solid red',
                'width': '400px',
                'height': '100px',
                'background-color': 'pink'
            });
        new DivTag().appendTo(document.body).css({
                'border': '13px solid green',
                'width': '300px',
                'height': '200px',
                'background-color': 'pink'
            });
//  :
//1、 , undefined // js , // // : ,
 
なぜ対象に学ぶべきですか?
対象に向かって考える方式です.パッケージの内容は未来の呼び出しに便利です.
オブジェクトはいくつかのものを遮蔽して、オブジェクトの特定の挙動属性を抽出することができます.
//     example
var hero = new Object();
//   -     
hero.name = "xm";
hero.level = 0;
hero.diamond = 0;
console.log(hero.name);
//   --     
hero.moveLeft = function () {
console.log("left");
};
hero.attack = function (name) {
//      hero      ,this    hero  
console.log(this.name + "attack" + name); 
};
//        
hero.attack("xjj");
// new Object();
// 1、       ,       ,           (      )
// 2、         
// 3、Object            
//         
//   :        ;   :               
//        -      ,       ,       
function Person(name, age, sex) {
//    new Object
}
// 1、      ,        new Object()
//    this???  
// 2、  this        
// 3、         ,          
// 4、        

var a = new Object();
//  :       ,              
//         
for (var i =0 ; i<10;i++) {
a["n" + i] = i;
}
 
Review:
1、相手は何ですか?
A、無秩序属性セット
B、オブジェクトはキーパッドのペアと見なすことができます.
C、属性は基本値、オブジェクト、関数を含むことができます.
2、対象の構成
A、属性==特徴名詞
B、方法--行為 動詞
C、将来はまだ事件があります.
3、関数と方法の違い
A、関数:直接呼び出すのは関数example:alert()です.
B、方法:オブジェクトを介して呼び出すのは方法hero.Attack()です.
4、コンストラクタ
A、コンストラクタの目的はオブジェクトを作成することです.
B、new Object()を使ってオブジェクトを作成する
C、パッケージ関数は複数のオブジェクトを作成します.
D、カスタムコンストラクタ
1、メモリ開発空間は、新たに作成したオブジェクトnew Objectを記憶する()
2、thisを現在のオブジェクトに設定します.
3、関数内部のコードを実行し、オブジェクトの属性と方法を設定します.
4、新しく作成したオブジェクトを返します.
5、This
A、関数のthisは、現在の関数のオブジェクトです.
B、コンストラクタでthisとは、現在のコンストラクタで作成されたオブジェクトのことです.
Concecion:誰が呼び出したら誰を指しますか?