js中创建对象的常用方法

【转自e良师益友网】其中对对象的创建做了具体的阐述,综合起来,总结了下:

第一种模式:工厂方式

代码如下:

var lev=function(){
return "e良师益友网";
};
function Parent(){
var Child = new Object();
Child.name="交流学习";
Child.age="4";
Child.lev=lev;
return Child;
};
var x = Parent();
alert(x.name);
alert(x.lev());

说明:
1、在函数中定义对象,并定义对象的各种属性,,虽然属性可以为方法,但是建议将属性为方法的属性定义到函数之外,这样可以避免重复创建该方法
2、引用该对象的时候,这里使用的是 var x = Parent()而不是 var x = new Parent();因为后者会可能出现很多问题(前者也成为工厂经典方式,后者称之为混合工厂方式),不推荐使用new的方式使用该对象
3、在函数的最后返回该对象

4、不推荐使用这种方式创建对象,但应该了解

第二种模式:构造函数方式
代码如下:

var lev=function(){
return "e良师益友网";
};
function Parent(){
this.name="交流学习";
this.age="30";
this.lev=lev;
};
var x =new Parent();
alert(x.name);
alert(x.lev());

说明:
1、与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return
2、同工厂模式一样,虽然属性的值可以为方法,扔建议将该方法定义在函数之外

3、同样的,不推荐使用这种方式创建对象,但仍需要了解

第三种模式:原型模式
代码如下:

var lev=function(){
return "e良师益友网";
};
function Parent(){

};
Parent.prototype.name="李小龙";
Parent.prototype.age="30";
Parent.prototype.lev=lev;
var x =new Parent();
alert(x.name);
alert(x.lev());

说明:
1、函数中不对属性进行定义
2、利用prototype属性对属性进行定义
3、同样的,不推荐使用这样方式创建对象

第四种模式:混合的构造函数,原型方式(推荐)

代码如下:

function Parent(){
this.name="交流学习";
this.age=4;
};
Parent.prototype.lev=function(){
return this.name;
};;
var x =new Parent();
alert(x.lev());

说明:1.该模式是指混合搭配使用构造函数方式和原型方式
2、将所有属性不是方法的属性定义在函数中(构造函数方式)
将所有属性值为方法的属性利用prototype在函数之外定义(原型方式)
3、推荐使用这样方式创建对象,这样做有好处和为什么不单独使用构造函数方式和原型方式,由于篇幅问题这里不予讨论
第五种模式:动态原型方式
代码如下:

function Parent(){
this.name="交流学习";
this.age=4;
if(typeof Parent._lev=="undefined"){
Parent.prototype.lev=function(){
return this.name;
}
Parent._lev=true;
}
};
var x =new Parent();
alert(x.lev());

说明:

1、动态原型方式可以理解为混合构造函数,原型方式的一个特例
2、该模式中,属性为方法的属性直接在函数中进行了定义,但是因为
代码如下:

if(typeof Parent._lev=="undefined"){
Parent._lev=true;}

从而保证创建该对象的实例时,属性的方法不会被重复创建
3、推荐使用这种模式

时间: 2024-11-06 03:09:41

js中创建对象的常用方法的相关文章

js中创建对象的几种方式

js中的几种创建对象的方式. 一共有5种: 一 , 工厂方式 var lev = function() {    return this.age;};function Parent() {    var child = new Object();    child.name = '小芳';    child.age = 30;    child.lev = lev;    return child;}var x = Parent();alert(x.name);alert(x.lev()); 说

js中创建对象方式----原型模式

一.什么是原型模式 在js中,创建对象的方式有工厂模式和构造函数模式等: 而构造函数模式最大的问题在于:构造函数中的每个方法都需要在实例对象中重新创建一遍,不能复用,所以为了解决这一个问题,就需要使用原型模式来创建对象.原型模式是把所有实例共享的方法和属性放在一个叫做prototype(原型)的属性中 ,在创建一个函数时都会有个prototype属性, 这个属性是一个指针,指向一个对象,是通过调用构造函数而创建的那个对象实例的原型对象. // 构造函数 function Person() {};

JS中创建对象的方法

最近手头一个项目刚完成,下一个显目还在准备中,趁这个空档期,拿起尘封多年的JS书, 重温一遍JS面向对象程序设计,然后就得出下文,算是一个总结吧. 也许,你会说 "创建对象不就是一对花括号的事吗?",是的,目前我们最常用, 也是最便捷的方式就是所谓的一对花括号的事,也就是我们常说的JSON对象(严格意义上,这其实不算JSON对象,具体我们这里不做深入),如下: let obj = { name:'xiaohong', age: 17, gender: 'female' } 这是就是我们

JS中数组的常用方法

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var arr = ['a','b','c','d','e']; arr[arr.length] = 'f'; console.log(arr);

JS中创建对象的三种方式

<script> 2 //创建对象的三种方式 3 // 1.利用对象字面量(传说中的大括号)创建对象 4 5 var obj1 = { 6 uname: 'ash', 7 age: 18, 8 sex: "女", 9 sayhi: function() { 10 console.log("hello kitty"); 11 12 } 13 } 14 15 //访问属性的两种方法 16 console.log(obj1.uname); 17 console

jS 中创建对象:

1.(外部属性定义方式:)简单自定义对象的最简单方式就是创建一个 Object 的实例: var person = new Object(); person.name="Leon"; person.age = 13; person.show = function(){ alert(this.name+"--"+this.age); }

js中创建对象方式

1.基本的三种方式 <script> //1.方法一 var per1={ name:"卡卡西", age:"15", eat:function(){ console.log("及哈哈"); } }; //方法二 var per2=new Object(); per2.name="大蛇丸"; per2.age=14; per2.eat=function(){ console.log("吃阿布")

js中的面向对象

面向对象:不了解原理的情况下,会使用功能.如:电视机,不清楚原理,却知道如何操作.面向对象是一种通用的思想,并非只有在编程使用.面向对象编程简称OOP. js是一个基于原型的面向对象的编程语言,即每个对象有一个原型对象,对象从原型中继承属性和方法. js的原型的关系是递归的.即,对象的原型也是一个对象,而原型的本身可能还有一个原型. js中的对象使用一个new 运算符和一个构造函数来创建 js中可以给对象动态的添加属性和方法 js中创建对象的方法有多种,包括:原型方式,动态原型方式,工厂方式等等

js 中object对象的操作

n = object对象 for(var p in n){ console.log(p);// 取得是key值 console.log(n[p]);//取得是value值 } 继之前js中数组的常用方法之后,Object的常用方法和属性也是很常用的.故,总结之. 一.属性 Object自带一个prototype的属性,即Object.prototype,Object.prototype本身也是一个对象,也会有一些属性和方法.如下: 1.属性 Object.prototype.writable:默