第一种模式:工厂方式
var lev=function(){
return "脚本之家";
};
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 "脚本之家";
};
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 "脚本之家";
};
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.,推荐使用这种模式
详细出处参考:
http://www.jb51.net/article/25093.htm
分享到:
相关推荐
### JavaScript面向对象之常见创建对象的方式 #### 引言 JavaScript 的灵活性体现在其创建对象的多种方式上。本文将详细介绍三种常见的对象创建方法:工厂模式、构造函数模式以及原型模式,并探讨它们各自的优缺点...
本文将对JavaScript创建对象的几种常用方式做一个总结,以便更好地理解和运用。 首先,我们来看**工厂方式**。这是一种创建对象的简单模式,它通过一个函数来创建具有特定属性的对象。在示例代码中,`Parent`函数...
这篇博文主要探讨了JavaScript创建对象的几种常见方式,这对于理解和掌握JavaScript面向对象编程至关重要。在实际开发中,了解并灵活运用这些方法能够提高代码的可读性和可维护性。下面,我们将详细讲解标题中提到的...
工厂方式是JavaScript中创建对象的一种模式,它通过一个工厂函数来封装创建对象的代码。通过工厂函数,我们可以创建多个具有相同属性和方法的对象实例。工厂方式的代码示例如下: ```javascript function createCar...
JavaScript作为一门面向对象的脚本语言,其创建对象的方式多种多样,每种方式都有其独特的特点和适用场景。下面我们逐一分析给定文件中所提到的几种创建对象的方法。 首先是使用构造函数模式创建对象。构造函数是...
在JavaScript中,创建对象有多种方法,每种方式都有其优缺点。以下是对这些方法的详细解释: 1. **工厂方式**: 工厂函数是通过一个函数来创建对象,它可以根据需要设置属性和方法。然而,这种方法的缺点是每个...
JavaScript 提供了多种创建对象的方式,每种都有其适用场景。字面量方式适用于简单对象,构造函数和原型对象适用于复杂且需要复用的情况,`Object.create()` 适用于创建新对象并指定原型,而 ES6 类则提供了面向对象...
感觉事情并不这么简单,于是我仔细看了一下这几种遍历对象的方法的区别 for in for in 循环是最基础的遍历对象的方式,它还会得到对象原型链上的属性 // 创建一个对象并指定其原型,bar 为原型上的属性 const obj =...
本文将探讨JavaScript创建对象的几种常见方式,并分析它们的优缺点。 1. **工厂模式** 工厂模式通过一个函数来创建对象,如示例中的`createObj`函数。这种模式的优点是简单易懂,可以方便地创建具有相同属性和方法...
本文将结合实例形式总结分析JavaScript中常见的七种创建对象的方式。 1. 通过内置Object对象的方式创建 这种方式通过调用Object构造函数创建新对象,然后通过点语法添加属性和方法。例如: ```javascript var o1 = ...
Javascript对象定义的几种方式
在讨论JavaScript中定义对象的几种方式之前,我们先理解一下JavaScript中的对象到底是什么。JavaScript是一种基于原型的编程语言,对象是其核心概念之一。对象可以被视为一个容器,存储各种键值对集合,键为属性名,...
在JavaScript中,有几种常见的创建对象的方法,这里我们将详细探讨这些方法。 1. **对象字面量**:这是最简单且直观的创建对象的方式。通过大括号 `{}` 创建一个空对象,然后通过点`.`或方括号`[]`来添加属性和方法...
本文实例讲述了JS定义函数的几种常用方法。分享给大家供大家参考,具体如下: 在 JavaScript 语言里,函数是一种对象,所以可以说函数是 JavaScript 里的一等公民(first-class citizens)。 之前我们这样定义过一个...
以上就是JavaScript创建对象的六种常见方式,每种都有其适用场景和优缺点。理解并熟练掌握这些方法,能够帮助你编写出更加灵活、可维护的代码。在实际项目中,根据需求选择合适的方法,可以提升代码质量和效率。
以下,我们来详细探讨在JavaScript中创建对象的五种主要方式: 第一种,使用Object构造函数创建对象。这是一种非常基础的创建对象方式,通过new操作符加上Object构造函数来创建一个新的对象实例。例如,创建一个名...
如下所示: 代码如下: var person...上面的例子创建了一个名为person的对象,并为它添加了三个属性(name、age和job)和一个方法(sayName())。其中,sayName()方法用于显示this.name()的值。早期的JavaScript开发人员
在JavaScript中创建对象主要涉及以下几种模式: 1. 工厂模式 工厂模式是最早期的对象创建方式之一,它通过一个函数来创建对象,并返回新创建的对象。这种方法的核心是利用函数封装创建对象的细节,然后通过返回值来...
工厂方法是一种常用的创建自定义对象的方式。它通过创建一个函数,函数返回一个对象,该对象就是自定义对象。例如: ``` function createPerson(name, age) { var o = new Object(); o.name = name; o.age = age;...
虽然不常用,但工厂函数也是一种创建对象的方式。它通过一个函数返回一个新的对象,不过这种方法并不体现对象的类型,也不利于扩展。例如: ```javascript function createObj(param) { var obj = new Object(); ...