1. Penciptaan objek terbina dalam
var girl=new Object(); girl.name='hxl'; console.log(typeof girl);
2.Corak kilang, corak pembina parasit
function Person(name){ var p=new Object();//内部进行实例化 p.name=name; p.say=function(){ console.log('my name is '+ p.name); } return p;//注:一定要返回 } var girl=Person('haoxioli'); girl.say();
3. Ciptaan Pembina
var Product=function(name){ this.name=name; this.buy=function(){ console.log('我衣服的牌子是'+this.name); } } var pro=new Product('真维斯'); pro.buy();
4.Penciptaan prototaip, kelemahan: setiap atribut dalam contoh mungkin berbeza
var Role=function(){} Role.prototype.name={nickName:'昵称'}; var boy=new Role(); boy.name.nickName='刘晓兵'; console.log(boy.name.nickName);//刘晓兵 var girl=new Role(); girl.name.nickName='郝晓利'; console.log(boy.name.nickName);//郝晓利,因为实例对象可以修改原型中的引用对象的值 console.log(girl.name.nickName);//郝晓利
5.Mod campuran: prototaip + pembinaan, anda boleh meletakkan sifat yang tidak boleh diubah suai oleh contoh dalam pembina, dan sifat yang boleh diubah suai dalam prototaip
var Role=function(){ this.name={nickName:'aaa'}; } Role.prototype.age=30; var boy=new Role(); boy.name.nickName='boy'; console.log(boy.name.nickName);//boy var girl=new Role(); girl.name.nickName='girl'; console.log(boy.name.nickName);//boy,实例不会修改构造函数中的值 console.log(girl.name.nickName);//girl
6.Bentuk literal
var cat={ name:'lucy', age:3, sex:'母' };//将对象转换成字符串 console.log(JSON.stringify(cat));//{"name":"lucy","age":3,"sex":"母"} var dog='{"name":"john","sex":"公"}'; console.log(JSON.parse(dog).name);//将字符串转为对象
7.Mod salin
function extend(tar,source){ for(var i in source){ tar[i]=source[i]; } return tar; } var boy={name:'醉侠客',age:20}; var person=extend({},boy); console.log(person.name);
8. Rangka kerja pihak ketiga
//先引入包 <script src='js/base2.js'></script> //base2框架,Base.extend及constructor都是固定用法 var Animal=Base.extend({ constructor:function(name){ this.name=name; }, say:function(meg){ console.log(this.name+":"+meg); } }); new Animal('lily').say('fish');
Satu lagi rangka kerja pihak ketiga
<script src='js/simplejavascriptinheritance.js'></script> //simplejavascriptinheritance框架,Class.extend及init都是固定用法 var Person=Class.extend({ init:function(name){ this.name=name; } }); var p=new Person(); p.name='over'; console.log(p.name);
Penjelasan terperinci di atas tentang pelbagai cara untuk mencipta objek dalam JS adalah semua kandungan yang dikongsi oleh editor saya harap ia dapat memberi anda rujukan, dan saya harap anda akan lebih menyokong Script Home.