javascriptの対象者向け


オブジェクト:
  • は、オブジェクトによく使われる2つの方法を作成し、
  • 工場モード:
    function creatObject(name,age){
        var o   = new Object();
        o.name  = name;
        o.age   = age;
        o.run   = function(){
            return this.name +this.age+"run....";
        }
        return o;
    }
    var ob1 = creatObject('sdfas',11);
    alert(ob1.run());
    
    #         ,            Object  ,       。
    
  • コンストラクションモード:
  • function Student(name,age) {
        this.name   = name;
        this.age    = age;
        this.run    = function(){
            return this.name + this.age+"run ....";
        }
    }
    var s   = new Student('mmm',100);
    alert(s.run())
    
    #    var s=Student('mmm',100),    ,      ,   this       window
    
    構造関数モードと工場モードの違い:1.構造関数法には表示されていない作成対象(new Object();2.直接に属性と方法をthisオブジェクトに割り当てます.3.renturn文がありません.コンストラクタモードにおけるオブジェクトの作成プロセス:1.コンストラクタが使用され、newコンストラクタ()が使用されると、背景にnew Object()が実行されます.2.構造関数の作用領域を新しいオブジェクトに、関数内のthisはnew Object()からのオブジェクトを表します.3.コンストラクタ内のコードを実行する.4.新しいオブジェクトを返します.注意:thisとは、現在のスコープのオブジェクトを表す参照です.全体の範囲でthisがwindowオブジェクトを表している場合、構造関数の体内では、現在の構造関数が宣言したオブジェクトを表します.
  • callとappyメソッドcallとappyはいずれも、関数が動作するときのcontextすなわちコンテキストを変更するために存在し、換言すれば、関数体内部thisの指向を変更するためである.JavaScriptの関数には「定義時文脈」と「実行時文脈」と「文脈は変えられます」という概念があります.例えば、関数func 1は、次のように定義されている.var func1 = function(arg1, arg2) {};は、func 1.call(this,arg 1,arg 2)を通過することができる.またはfunc 1.apply(this、[arg 1,arg 2]);を選択します.その中のthisはあなたが指定したい文脈で、彼はいずれかのJavaScriptオブジェクト(JavaScriptの中のすべてのオブジェクト)ができます.コールはパラメータを順番に渡す必要があります.JavaScriptでは、ある関数のパラメータ数が固定されていませんので、適用条件としては、パラメータが明確に数を知っている時に、callを使って、不確定の時に、appyを使って、パラメータpushを配列に送ります.パラメータ数が不確定な場合には,関数内部もargmentsという配列によって,すべてのパラメータを便利にすることができる.ここは作者から引用します.趙望野さん.https://www.zhihu.com/question/20289071/answer/14745394