`
xjtusaber
  • 浏览: 54811 次
  • 性别: Icon_minigender_1
  • 来自: 龙黄
社区版块
存档分类
最新评论

Javascript中Class的定义

阅读更多
/**
 * 工厂方法:
 * 存在问题:重复创建对象eat
 */
function CreatePeople(name){
  var  people=new Object();
  people.name=name;
  people.eat=function(){
  	alert(this.name+' is eating  !!')
  };
  return people;
}
/**
 * 构造函数法:
 * 存在问题:重复创建对象eat
 * 使用new 来创建对象,如:var p=new People('saber')
 * 在执行第一句代码前,先创建一个对象(并返回,所以构造函数最后无须return),只有用this才能访问该对象,
 * 
 */
function People(name){
  this.name=name;
  this.eat=function(){
  	alert(this.name+' is eating  !!')
  };
}
/**
 * 混合的构造函数/原型方式(推荐)
 */
var People1=function (name){
	this.name=name;	
}
People1.prototype={
	eat:function(){
		alert(this.name+' is eating !')
	}
}
/* 自定义构造函数为:initialize
 * 在使用new创建对象的时候,执行initialize函数,
 */
var People11=function (){
	this.initialize.apply(this, arguments);
}
People11.prototype={
	initialize:function(name){
		this.name=name;
		alert(' Initializing Ok !!');
	},
	eat:function(){
		alert(this.name+' is eating !')
	}
}
/* 有以上基础,如果我们要以一种统一的方式来定义类,该如何呢?
 * 像java中定义类都采用Class关键字一样,而在JS中,没有类这个概念,
 * 那么我们首先声明一个对象MyClass
 */

var MyClass=function(){
	return function(){//闭包
	    this.initialize.apply(this, arguments);
	}
}
/*
 * 定义类:
 */
var ClassOne=MyClass();
ClassOne.prototype={
	initialize:function(name){
        this.name=name;	
        alert(this.name+' initializing Ok !')
	},
	methodOne:function(){
		alert("My name is:" + this.name);
	}
}

var ClassTwo=MyClass();
ClassTwo.prototype={
	initialize:function(name){
        this.name=name;		
	},
	methodTwo:function(){
		alert("My name is:" + this.name);
	}
}

/**
 * 采用prototype.js,它的方法和我们上边的一样:
 * var Class = {
 * create: function() {
 *  return function() {
 *    this.initialize.apply(this, arguments);
 *  }
 * }
 *}
 */
var People2=Class.create();
People2.prototype={
	//自定义的构造函数:initialize
	initialize:function(name,sex){
		this.name=name;
		this.sex=sex;
	},
	eat:function(){
		alert(this.name+' is eating ');
	},
	showSex:function (){
		alert(this.name+'\'s sex is :'+this.sex);
	}
}
分享到:
评论

相关推荐

    JavaScript ES6中CLASS的使用详解

    在此之前,JavaScript中模拟类主要通过原型链来实现,而ES6中的class为面向对象编程(OOP)提供了一种更简洁、更直观的语法。 在ES6之前,JavaScript本身没有类的概念,它是基于原型的语言。原型对象的属性可以被新...

    Javascript定义类(class)的三种方法详解

    本文将详细解释三种在JavaScript中定义类的方法:构造函数法、Object.create()法以及极简主义法。 1. 构造函数法 构造函数法是最常见的模拟类的方式,通过使用函数作为类的模板。构造函数通常以大写字母开头,表示...

    JavaScript定义类的几种方式总结

    ES6中引入了class关键字和extends关键字,它们提供了一种更加直观和面向对象的方式来定义和继承类,使得JavaScript的面向对象编程更加接近传统面向对象语言的模式。通过class关键字定义的类,其内部的构造函数方法...

    JAVASCRIPT中定义对象的几种方式.pdf

    在讨论JavaScript中定义对象的几种方式之前,我们先理解一下JavaScript中的对象到底是什么。JavaScript是一种基于原型的编程语言,对象是其核心概念之一。对象可以被视为一个容器,存储各种键值对集合,键为属性名,...

    JavaScript中的类(Class)详细介绍

    在JavaScript中,可以使用类(Class)来实现面向对象编程(Object Oriented Programming)。不过,JavaScript中的类与Java中的有所不同,其相应的定义和使用也不一样。 JavaScript中类的定义 在JavaScript中,所有从同一...

    JS.Class 2.1发布 Ruby风格的JavaScript.zip

    在类定义中,以`@`开头的方法是类方法,而没有`@`的则是实例方法。这种区分使得代码逻辑更加明确,易于理解和维护。 ```javascript MyClass = JS.Class({ @staticMethod: function() { // 类方法 }, ...

    Unity3D中JavaScript与C#对比

    在 JavaScript 中,类继承可以使用 `class Weapon extends Item` 的方式,而在 C# 中,使用 `public class Weapon : Item` 的方式。 导入函数库方面,JavaScript 使用 “Import” 关键字,而 C# 使用 “using” ...

    javaScript给元素添加多个class的简单实现.docx

    ### JavaScript给元素添加多个class的简洁实现 #### 概述 在Web开发中,通过JavaScript动态地为HTML元素添加或删除CSS类名是一项常见的需求。本文档将详细介绍如何使用JavaScript来给HTML元素添加多个class,并...

    【JavaScript源代码】ES6中的类(Class)示例详解.docx

    在JavaScript的ES6标准中,引入了`Class`语法,这是一种更加面向对象的代码书写方式。尽管`Class`看似一种全新的结构,但它本质上仍然是基于原型(prototype)的,可以说是一种语法糖,使得对象的创建和操作更加直观...

    javascript调用delphi中的函数

    标题“javascript调用delphi中的函数”涉及到的技术领域是跨语言通信,具体是JavaScript与Delphi之间的交互。这种交互通常发生在Web应用程序与桌面应用程序的集成,或者在浏览器扩展和本地资源之间。以下是对这一...

    JavaScript中支持面向对象的基础教程含代码示例

    本教程将详细介绍 JavaScript 中支持面向对象的基础知识,包括定义类、使用 new 操作符获得实例、引用对象的属性和方法等。 6.1 JavaScript 中支持面向对象的基础 在面向对象的思想中,类是一个抽象的概念,表示了...

    Javascript中调用C++函数

    通过Emscripten编译器,可以将C++编译成WASM,然后通过WebIDL定义接口,使JavaScript可以调用C++函数。 总结,JavaScript调用C++函数涉及到语言间通信的复杂性,但通过ActiveX控件、NPAPI插件或现代的WebAssembly...

    javascript中的类理解

    在 JavaScript 中,类的定义使用 `class` 关键字。然而,由于 JavaScript 的历史,早期的类是通过函数来模拟的。例如: ```javascript function WuYouUser() { this.Name; } ``` 在上面的例子中,`WuYouUser`...

    ES6 javascript中Class类继承用法实例详解

    本文实例讲述了ES6 javascript中Class类继承用法。分享给大家供大家参考,具体如下: 1. 基本用法 Class 之间可以通过extends关键字实现继承, 这比 ES5 的通过修改原型链实现继承, 要清晰和方便很多。 class ...

    javascript中文参考手册2017 chm版

    JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、null和undefined)、操作符(如算术、比较和逻辑操作符)、流程控制(如条件语句if...else和switch,以及循环for和while)以及函数定义和调用。...

    javascript中定义类的方法汇总

    在JavaScript中,定义类的方法多种多样,这使得开发者可以根据需求选择最合适的方式来创建对象。以下是几种主要的方法: 1. **工厂方式**: 工厂模式是一种创建对象的模式,通过函数来模拟类的概念。在JavaScript...

    JavaScript使用prototype定义对象类型

    在 JavaScript 中,prototype 是一个非常重要的概念,它提供了一套面向对象编程的基础设施,允许开发者定义对象类型和实现继承。下面我们将详细介绍如何使用 prototype 定义对象类型。 一、什么是 Prototype? 在 ...

Global site tag (gtag.js) - Google Analytics