浅谈几种常用的JS类定义方法

// 方法1 对象直接量

var obj1 = {
 v1 : "",
 get_v1 : function() {
  return this.v1;
 },
 set_v1 : function(v) {
  this.v1 = v;
 }
};

// 方法2 定义函数对象

var Obj = function() {
 var v1 = "";
 this.get_v1 = function() {
  return this.v1;
 };
 this.set_v1 = function(v) {
  this.v1 = v;
 }
};

// 方法3 原型继承

var Obj3 = new Function();
Obj3.prototype = {
 v1 : "",
 get_v1 : function() {
  return this.v1;
 },
 set_v1 : function(v) {
  this.v1 = v;
 }
};

// 方法4 工厂模式

function loadObj() {
 var tmp = new Object();
 tmp.v1 = "";
 tmp.get_v1 = function() {
  return tmp.v1;
 };
 tmp.set_v1 = function(v) {
  tmp.v1 = v;
 };
 return tmp;
}

obj1.set_v1('hello1');
alert(obj1.get_v1());

var obj2 = new Obj();
obj2.set_v1('hello2');
alert(obj2.get_v1());

var obj3 = new Obj();
obj3.set_v1('hello3');
alert(obj3.get_v1());

var obj4 = loadObj();
obj4.set_v1('hello4');
alert(obj4.get_v1());

alert(obj1);
alert(obj2);
alert(obj3);
alert(obj4);

以上这篇浅谈几种常用的JS类定义方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2016-06-07

JavaScript定义类或函数的几种方式小结

提起面向对象我们就能想到类,对象,封装,继承,多态.在<javaScript高级程序设计>(人民邮电出版社,曹力.张欣译.英文名字是:Professional JavaScript for Web Developers)这本书中描述的还算比较详细.我们看看JavaScript中定义类的各种方法. 1.工厂方式 javaScript中创建自己的类和对象,我们应该是必须掌握的,我们都知道javaScript中对象的属性可以在对象创建后动态定义,比如下面的代码: 复制代码 代码如下: <scr

一个简单的javascript类定义例子

复制代码 代码如下: <script> //定义一个javascript类 function JsClass(privateParam/* */,publicParam){//构造函数 var priMember = privateParam; //私有变量 this.pubMember = publicParam; //公共变量 //定义私有方法 function priMethod(){ return "priMethod()"; } //定义特权方法 //特权方法可以

JS类中定义原型方法的两种实现的区别

我们知道,给JavaScript类添加原形(prototype)方法是很简单的.而且常用的有下面这两种方法,可是这两种方法在使用时有区别吗? JScript Class: function JSClass() { } Extends prototype method: JSClass.prototype.MethodA = function() { }; Or function = JSClass.prototype.MethodA() { }; 其实这两个原形定义方式可以简化一下来讨论,先把它

js类定义函数时用prototype与不用的区别示例介绍

一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下: 复制代码 代码如下: function ListCommon2(first,second,third) { this.First=function () { alert("first do"+first); } } ListCommon2.do1=function(first) { // this.First(); alert("first do"+first); } ListComm

关于js类的定义

遇到的问题,首先是js对象的封装,js没有提供类的机制,唯一的内置类是function类,也就是说所有的函数都是function类的实例化对象.不过依靠这个唯一的类我们可以模拟定义一个新的类. 首先想到的,是直接用function生成定义完整的类: 复制代码 代码如下: function myClass(arg,...) { this.attributeName; this.functionName = function(){}; } 不过这样有一个问题,每当我new一个新的myClass实例的

JS类定义原型方法的两种实现的区别评论很多

我们知道,给JavaScript类添加原形(prototype)方法是很简单的.而且常用的有下面这两种方法,可是这两种方法在使用时有区别吗?     JScript Class:  复制代码 代码如下: function JSClass()   {        } Extends prototype method:  复制代码 代码如下: JSClass.prototype.MethodA = function()   { }; Or   复制代码 代码如下: function = JSCla

javascript 类定义的4种方法

复制代码 代码如下: /* 工厂方式--- 创建并返回特定类型的对象的 工厂函数 ( factory function ) */ function createCar(color,doors,mpg){ var tempCar = new Object; tempCar.color = color; tempCar.doors = doors; tempCar.mpg = mpg; tempCar.showCar = function(){ alert(this.color + " "

JS中类或对象的定义说明

我们知道,JS是面向对象的.谈到面向对象,就不可避免的要涉及类的概念.一般像c#,java这些强类型语言都有固定的定义类的语法.而JS的不同之处在于它能使用各种方法实现自己的类和对象.一般的实现有以下几种方式: 1.工厂方式工厂方式是指创建一个返回特定对象类型的工厂函数,示例代码如下: 复制代码 代码如下: function createCar(sColor,iDoors,iMpg){   var oTempCar=new Object;   oTempCar.color=sColor;   o

JS类的定义与使用方法深入探索

本文实例分析了JS类的定义与使用方法.分享给大家供大家参考,具体如下: js可以定义自己的类 很有意思 <script type="text/javascript"> var Anim = function() { alert('nihao'); }; Anim.prototype.start = function() { alert('start'); }; Anim.prototype.stop = function() { alert('stop'); }; var

Javascript类定义语法,私有成员、受保护成员、静态成员等介绍

其实通俗的讲类就是对象的模板,为了增强JS的OO特性,受mootoos框架启发我们可以使用一个JSON对象来描述这个对象的模板.在这个模板中我们可以模拟实现私有成员,受保护成员,静态成员. 这是一个在JS中模拟的类定义语法,代码中Class是一个自定义函数,它接受两个参数,第一个参数是类名.第二个参数是一个JSON用来一个对象的模板.在这个JSON对象中其中字段 "extend",,"initialize","static" 为一些预定义关键字,

深入分析C++派生类中的保护成员继承

protected 与 public 和 private 一样是用来声明成员的访问权限的.由protected声明的成员称为"受保护的成员",或简称"保护成员".从类的用户角度来看,保护成员等价于私有成员.但有一点与私有成员不同,保护成员可以被派生类的成员函数引用. 如果基类声明了私有成员,那么任何派生类都是不能访问它们的,若希望在派生类中能访问它们,应当把它们声明为保护成员.如果在一个类中声明了保护成员,就意味着该类可能要用作基类,在它的派生类中会访问这些成员.

JavaScript中定义类的方式详解

本文实例讲述了JavaScript中定义类的方式.分享给大家供大家参考,具体如下: Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持虚函数的virtual,不过,Javascript是一门灵活的语言,下面我们就看看没有关键字class的Javascript如何实现类定义,并创建对象. 一.定义类并创建类的实例对象 在Javascript中,我们用function来定义类,如下: function Sh

C++中的聚合类定义与用法分析

本文实例讲述了C++中的聚合类.分享给大家供大家参考,具体如下: 聚合类是一种没有用户定义的构造函数,没有私有(private)和保护(protected)非静态数据成员,没有基类,没有虚函数.这样的类可以由封闭的大括号用逗号分隔开初始化列表.下列的代码在 C 和 C++ 具有相同的语法: struct C { int a; double b; }; struct D { int a; double b; C c; }; // initialize an object of type C wit

使用Modello编写JavaScript类

From:http://www.ajaxwing.com/index.php?id=2 一,背景 回顾一下编程语言的发展,不难发现这是一个不断封装的过程:从最开始的汇编语言,到面向过程语言,然后到面向对象语言,再到具备面向对象特性的脚本语言,一层一层封装,一步一步减轻程序员的负担,逐渐提高编写程序的效率.这篇文章是关于 JavaScript 的,所以我们先来了解一下 JavaScript 是一种怎样的语言.到目前为止,JavaScript 是一种不完全支持面向对象特性的脚本语言.之所以这样说是因

JavaScript 类的定义和引用 JavaScript高级培训 自定义对象

一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascript中,已经存在一些标准的类,例如Date.Array.RegExp.String.Math.Number等等,这为我们编程提供了许多方便.但对于复杂的客户端程序而言,这些还远远不够. 与Java不同,Java2提供给我们的标准类很多,基本上满足了我们的编程需求,但是Javascript提供的标准类很

javascript中定义类的方法汇总

JS中定义类的方式有很多种: 1.工厂方式 复制代码 代码如下: function Car(){    var ocar = new Object;    ocar.color = "blue";    ocar.doors = 4;    ocar.showColor = function(){     document.write(this.color)    };    return ocar;   }   var car1 = Car();   var car2 = Car()

javascript中定义私有方法说明(private method)

一度以为在javascript的世界里,所有方法都是公有的,无法真正从技术上定义一个私有方法,今天又一次发现:其实我错了! 复制代码 代码如下: var Person = function(name,sex){     this.name = name;     this.sex = sex;          var _privateVariable = "";//私有变量         //构造器中定义的方法,即为私有方法     function privateMethod()