中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS面向對象

發布時間:2020-08-05 21:40:06 來源:網絡 閱讀:323 作者:心月草 欄目:web開發
1.創建對象
window.onload=function(){
        //1.工廠模式:
        function student1(name,qq){
                var obj=new Object();
                obj.name=name;
                obj.qq=qq;
                obj.show=function(){
                        alert(this.name+":"+this.qq);
                }
                return obj;
        }
        var s1=student1("HH","123");
        console.log(s1);

        //2.構造函數:
        function Student2(name,qq){
                this.name=name;
                this.QQ=qq;
                this.show=function(){
                        alert(this.name+":"+this.QQ);
                }
        }
        var s2=new Student2("HH","1234");
        console.log(s2);

        //3.字面量方式:
        var s3={
                "name":"HH",
                "QQ":"12345",
                show:function(){
                        alert(this.name+":"+this.QQ);
                //alert(name+":"+QQ);//錯誤!!!
                }
        }
        //s3.show();
        //console.log(s3.name+":"+s3.QQ);
        console.log(s3);
        //我們在定義函數的時候,函數本身就會默認有一個prototype的屬性,而我們用new運算符來生成一個對象的時候就沒有prototype屬性。如:
        console.log(s1.prototype);//undefined;
        console.log(student1.prototype);//Object;
        console.log(s2.prototype);//undefined;
        console.log(Student2.prototype);//Object;
        console.log(s3.prototype);//undefined;

        function Student4(){ };
        Student4.prototype = {
                name:"fdf",
                age:"fd",
                //字面量創建的方式使用constructor屬性不會指向實例  而是指向object
                // 強制修改
                constructor :Student
        };
        var s4 = new  Student();
        alert(s4.constructor);
}
2.原型
window.onload=function(){
        function Student(){};
        Student.prototype.name="HH";
        Student.prototype.show=function(){
                alert("I am "+this.name);
        }

        var s=new Student();
        //s.show();
        //alert(s.name);
        Student.prototype.name="FF";
        //alert(s.name);
        //原型方式創建對象的缺陷:1.不能傳參; 2.一改全改

        function Student1(){
                this.name="FF";
        };
        Student1.prototype.name="HH";
        Student1.prototype.show=function(){
                alert("I am "+this.name);
        }
        var s1=new Student1();

        console.log(s1.name);//FF
        console.log(s1.__proto__.name);//HH
        console.log(Student1.prototype.name);//HH

        Student1.prototype.name="O_O";

        console.log(s1.name);//FF
        console.log(s1.__proto__.name);//O_O
        console.log(Student1.prototype.name);//O_O

        //通過原型改變的屬性和方法不會改變對象原有的屬性和方法
}
3.混合模式
window.onload=function(){
        //混合模式: 構造函數+原型
        function Student(name,QQ){
                this.name=name;
                this.QQ=QQ;
                if(typeof this.show != "function"){
                        Student.prototype.show=function(){
                                //alert(this.name+":"+this.QQ);
                                console.log(this); // this指s1
                        }
                }
        }
        var s1=new Student("MM","1242");
        s1.show();
        var s2=new Student("QQ","w809r809ew");
        console.log(s1.show==s2.show);//true;通過Student創建的對象共用函數show,其保存在Student的原型中,故引用地址是一樣的。
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北川| 临邑县| 临颍县| 墨脱县| 马山县| 遂川县| 贡嘎县| 高淳县| 兴安盟| 钟山县| 湟源县| 县级市| 青冈县| 哈密市| 阿拉善左旗| 边坝县| 庄浪县| 西城区| 昌黎县| 茌平县| 南丰县| 依安县| 北安市| 中超| 额敏县| 太保市| 白朗县| 怀集县| 连云港市| 新河县| 安岳县| 五常市| 喜德县| 静海县| 分宜县| 汽车| 滁州市| 闻喜县| 观塘区| 安远县| 怀集县|