Kandungan utama artikel ini datang daripada pengaturcaraan lanjutan JavaScript, bab berorientasikan objek dan prototaip:
1. Mod kilang
ECMAScript boleh mencipta objek melalui corak kilang:
//工厂模式 function createObject(name, age) { var obj = new Object(); //创建对象 obj.name = name; //添加属性 obj.age = age; obj.run = function () { //添加方法 return this.name + this.age + '运行中...'; }; return obj; //返回对象引用 }; var obj1 = createObject('Lee', 100); //创建第一个对象 var obj2 = createObject('Jack', 200); //创建第二个对象 //alert(obj1.run()); //打印第一个对象实例的run()方法 //alert(obj2.run()); //打印第二个对象实例的run()方法 //alert(typeof obj1); //alert(typeof obj2); alert(obj1 instanceof Object); //true alert(obj2 instanceof Object); //true
Objek yang dicipta melalui corak kilang menyelesaikan masalah instantiasi berulang, tetapi masalah pengecaman objek tidak dapat diselesaikan (semua objek adalah Objek), jadi untuk menyelesaikan masalah pengecaman objek, kami menggunakan pembina berikut.
2. Pembina
//构造函数创建 function Person(name,age){ //所有构造函数对象都是Object this.name=name; this.age=age; this.run=function(){ return this.name+this.age+"ing..."; }; }; var person1=new Person('zhu1',100); var person2=new Person('zhu2',200); alert(person1.run()); alert(person2.run()); alert(person1 instanceof Object); //ture alert(typeof person2); //Person alert(person2 instanceof Person); // true var person3=new Object(); Person.call(person3,'zhu3',300);//对象冒充,person3是Object类型,冒充Person类型 alert(person3.run());
Ini dalam pembina: mewakili rujukan kepada objek skop semasa. Jika ia berada dalam skop global, ini mewakili objek tetingkap Jika ia berada dalam badan pembina, ia mewakili objek yang diisytiharkan oleh pembina semasa.
Kaedah pembina menyelesaikan masalah instantiasi berulang dan pengenalpastian objek Membandingkan perbezaan dengan kaedah kilang, kita boleh lihat:
1. Kaedah pembina tidak mencipta objek (Objek baharu()) secara eksplisit;
2. Tetapkan nilai atribut dan kaedah kepada ini;3. Tiada kenyataan balas;
4 Walau bagaimanapun, apabila mencipta menggunakan pembina, anda mesti menggunakan operator baharu;
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.