1、原始模式
var ?dog ?= ???{ ???name: jack, ???length: 70, ???wang:function(){ ???????console.log(this.name); ???}
2、工厂模式(批量)
function ?creatdog ?(name,length) { ???var ?moudle ?= ??new ?object (); ???dog.name=name; ???dog.length=length; ???dog.wang=function(){ ???????console.log(this.name); ???}; ???return moudle;}
3、构造函数
function ?Dog (name,length) { ???this.name=name; ???this.length=length; ???this.wang=function() { ???????console.log(this.name); ???};}var dog1 = new Dog( ‘wangcai‘ , 80) //创建一个dog1对象Dog(‘wangcai‘, 80); ???//属性方法都给window对象,window.name=‘wangcai‘,window.wang()会输出wangcai
4、原型模式
function ?Dog () {}Dog.prototype.name = ‘wangcai‘;Dog.prototype.length=80;Dog.prototype.wang= function () { ???console.log(this.name);};var ?dog1 = new Dog();
// dog1:name:‘wangcai‘;length:80;f:wang()
5、混合模式
function Dog (name, length) { ????this.name = name; ????this.length = length; } Dog.prototype = { ????hobby: [‘running‘,‘eat‘]; ????wang: function () {
console.log(this.name);
}}; var dog1 = new Dog(‘wangcai‘, 80); //dog1:‘wangcai‘,80; __proto__: [‘running‘,‘eat‘],wang var dog2 = new Dog(‘defu‘, );70 //dog2:‘defu‘,70;__proto__: [‘running‘,‘eat‘],wang
js中创建对象的5种方法
原文地址:https://www.cnblogs.com/jswzy/p/10165842.html