`
pingchajava
  • 浏览: 30303 次
  • 性别: Icon_minigender_1
  • 来自: 常德
社区版块
存档分类
最新评论

js 创建类与对象

阅读更多

js 创建类与对象有几种方式:

 

 1、最原始的方式 :

var car = new Object();
car.color = "red";
car.name = "baoma";
car.showColor = function(){

   alert(this.color);
}

 

   创建一个car 的对象, 有两个属性: name,color  一个方法:showColor

   缺点:只能创建一个对象

 

2、工厂方式

 

function createCar() {
  var car= new Object;
  car.color = "blue";
  car.name= "baoma";
   car.showColor = function() {
    alert(this.color);
  };
  return  car;
}

var car1 = createCar();
var car2 = createCar();

 和原始方式一样,创建car 对象

 比原始方式优越的是:可以创建多个car对象

 缺点:所有对象的属性和方法都 是相同的

 

 

3、构造函数方式

 

 

function createCar(color,name) {
   this.color = color;
   this.name= name;
   car.showColor = function() {
    alert(this.color);
  };
 }

var car1 = createCar("blue","baoma");
var car2 = createCar("red","benci");

 

缺点:

 构造函数会重复生成函数,为每个对象创建独立的版本

 

 

4、原型方式:

 

 

function Car() {
}
Car.prototype.color = "blue";
Car.prototype.name = "baoma";
Car.prototype.showColor = function() {
  alert(this.color);
};

 

    代码:

      首先:定义构造函数(Car),其中无任何代码

      其次:利用 prototype 构造属性与函数

 

  当调用new Car()时, 原型的所有属性都会被立即赋予创建的对象,也就是说有 Car 的实例存放的都是指向 showColor() 函数的指针 ,语义上讲:这样所有的属性都属于一个对象

 

  原型方式存在问题:

 

      1、不能使用传递参数方式给属性赋值

      2、当属性的指向是对象 而不是函数时,对象很少被多个实例共享

 

 

5、混合构造函数/原型方式

 

function Car(color,name) {
   this.color = color;
   this.name= name;
  
  };
 }

Car.prototype.showColor = function() {
  alert(this.color);
};

 使用这种方式,基本与其它语言创建对象一个样了。

 

最常用的也是这种方式 

 

这种方式 :既使所有函数都只创建一次,并且使每个对象都具有自己的对象属性实例

 

 

6、也可采用这种方式  动态原型方式

 

function Car(color,name) {
  this.color = color;
  this.name = name;
  if (typeof Car._initialized == "undefined") {
    Car.prototype.showColor = function() {
      alert(this.color);
    };
	
    Car._initialized = true;
  }
} 
 

该方法使用标志(_initialized)来判断是否已给原型赋予了任何方法。该方法只创建并赋值一次

 

 

最常用,最好用的就是第 五,六种,但第六种更完美一些

 

分享到:
评论

相关推荐

    在js中创建类和对象

    本文将详细介绍几种常见的创建对象的方法,包括它们的特点和优缺点。 5.1 工厂方法 工厂方法是一种创建对象的模式,通过一个函数来创建具有特定属性和行为的对象。在JavaScript中,我们可以定义一个函数,如`...

    javascript创建对象的方式(二)

    这篇博客“javascript创建对象的方式(二)”可能详细介绍了在JavaScript中除了最基础的字面量语法之外的其他创建对象的方法。这里我们将深入探讨几种常见的创建对象的方式。 1. **构造函数**: JavaScript中的...

    js如何创建类和对象(10分钟的收益)

    以下是对JavaScript创建类和对象的详细说明: 1. 原始方式:在JavaScript早期,创建对象通常采用的是直接使用`new Object()`的方式,然后通过点操作符动态添加属性和方法。例如: ```javascript var oCar = new ...

    Javascript创建自定义对象 创建Object实例添加属性和方法

    如下所示: 代码如下: var person...上面的例子创建了一个名为person的对象,并为它添加了三个属性(name、age和job)和一个方法(sayName())。其中,sayName()方法用于显示this.name()的值。早期的JavaScript开发人员

    JS定义类或对象

    在JavaScript中,可以通过定义一个函数来创建对象。以下是一个简单的例子,展示了如何定义一个名为`createPerson`的函数,用于创建包含名字、年龄和性别的对象: ```javascript function createPerson(name, age, ...

    javascript创建对象的方式(一)

    这篇博文主要探讨了JavaScript创建对象的几种常见方式,这对于理解和掌握JavaScript面向对象编程至关重要。在实际开发中,了解并灵活运用这些方法能够提高代码的可读性和可维护性。下面,我们将详细讲解标题中提到的...

    用js创建XMLHttpRequest对象池

    在JavaScript中,XMLHttpRequest(XHR)对象是用于在不刷新整个页面的情况下与服务器进行异步数据交换的关键工具。这种技术通常被称为Ajax(Asynchronous JavaScript and XML),尽管现在它不仅仅局限于XML,还包括...

    javascript对象创建

    首先,让我们从最基础的创建对象的方式开始。在JavaScript中,可以使用字面量语法来创建一个简单的对象: ```javascript var obj = { name: 'John', age: 30, sayHello: function() { console.log('Hello, ' + ...

    js对象创建,事件委托测试

    js对象创建,事件委托测试,this apply call

    javascript如何创建对象

    JavaScript创建对象的方法主要有以下几种: 一、直接创建 直接创建是通过new Object()来创建一个新的空对象,然后逐步给这个对象添加属性和方法。例如,创建一个名为person1的对象,并添加name、gender属性,以及一...

    js定义类 对象 构造函数,类的继承

    类提供了创建对象的模板,对象是数据和行为的载体,而构造函数则是创建和初始化对象的工具。通过类的继承,我们可以复用代码,构建更复杂的软件结构。在实际开发中,理解并熟练运用这些概念对于编写高效、可维护的...

    javascript创建对象的方式(三)

    在JavaScript这门动态类型的编程语言中,创建对象是其核心特性之一。本文将详细探讨三种主要的创建JavaScript对象的方法,并结合“源码”与“工具”的概念,来深入理解这些方式在实际开发中的应用。 一、字面量...

    用new创建对象和直接定义的区别

    在编程世界中,创建对象是实现面向对象编程的基础。本文将深入探讨两种常见的对象创建方式:使用`new`关键字创建对象和直接定义对象。这两种方法虽然最终都能创建类的实例,但它们在内存分配、作用域和生命周期等...

    JS中自定义类和对象.doc

    与工厂方法类似,但它使用了关键字 `new` 来创建对象的实例。 ##### 示例 ```javascript function Fruit(name, number) { this.name = name; this.number = number; this.showName = function() { alert(this....

    js 面向对象实例

    在JavaScript面向对象的上下文中,我们可以创建专门处理Canvas绘图的类,封装复杂的绘图逻辑: ```javascript class Circle { constructor(x, y, radius) { this.x = x; this.y = y; this.radius = radius; } ...

    创建js日志对象代替alert函数进行调试的例子

    此例子展示了如何使用面向对象的方式创建一个JS日志对象,它允许开发者在不中断页面执行的情况下收集和查看日志信息。这种做法不仅提高了调试效率,还改善了用户在调试过程中的体验。此外,你可以根据需求扩展这个...

    js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式).docx

    ### JavaScript面向对象之常见创建对象的方式 #### 引言 JavaScript 的灵活性体现在其创建对象的多种方式上。本文将详细介绍三种常见的对象创建方法:工厂模式、构造函数模式以及原型模式,并探讨它们各自的优缺点...

    在javascript中创建对象的各种模式解析

    在JavaScript中创建对象的各种模式对于掌握这门语言的面向对象编程特性至关重要。JavaScript作为一门具有面向对象特性的脚本语言,虽然没有传统意义上类的概念,但它通过其他方式实现了对象的创建和继承。在...

    JS扩展类,克隆对象与混合类实例分析

    克隆对象指的是创建一个与原对象具有相同属性和方法的新对象。这在需要复制一份数据而不影响原数据的场景中非常有用。在JavaScript中,克隆对象可以通过浅克隆和深克隆来实现。浅克隆只是复制对象的引用,而深克隆则...

    deePool高效的JavaScript对象池

    2. 创建对象池:使用`DeePool.createPool()`方法创建指定类型的对象池。 3. 分配对象:使用`pool.get()`从池中获取对象。 4. 归还对象:完成使用后,通过`pool.put(obj)`将对象归还到池中。 5. 销毁对象池:在不再...

Global site tag (gtag.js) - Google Analytics