JavaScript编写类的一些具体例子?

xqw2 2002-11-21 12:59:21
我想得到一些关于编写javascript类的例子,最好是有说明的,如果给得好不够分可以再加。
...全文
106 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsj 2002-12-04
  • 打赏
  • 举报
回复
如果想 封装
可以

function MyObj(value1,value2){
var v1,v2;
this.v1 = value1; //定义属性
this.v2 = value2;
this.fnAdd = fnAdd; //定义方法
function fnAdd(){
}
}

function fnAdd就是private了
xqw2 2002-11-29
  • 打赏
  • 举报
回复
总结一下:
function MyObj(value1,value2){
var v1,v2;
this.v1 = value1; //定义属性
this.v2 = value2;
this.fnAdd = fnAdd; //定义方法
}
function fnAdd(){
}
使用这个对象的时候是这样的,
function UseObj(){
var newObj = new MyObj(v1,v2)
}

请问各位还有什么补充?
wind0209 2002-11-28
  • 打赏
  • 举报
回复
<html>
<head>
<title>JavaScript</title>
<script>

// Create a shopping cart.

var cart = new ShoppingCart();

/******************************************************************************
* 定义产品 Product 对象 *
******************************************************************************/

// Constructor for the Product object.

function Product(name, num, price, shipping, quantity) {

this.name = name;
this.catalogNumber = num;
this.price = price;
this.shippingCost = shipping;
this.quantity = quantity;
this.totalCost = totalCost;
}

// 计算总价值的方法 totalCost

function totalCost() {

return ((this.price + this.shippingCost) * this.quantity);
}

/******************************************************************************
* 定义购物车 ShoppingCart 对象 *
******************************************************************************/

// 构造对象函数 ShoppingCart

function ShoppingCart() {

this.items = new Array();
this.addItem = addItem;
this.removeItem = removeItem;
}

// 添加产品项的方法 addItem

function addItem(item) {

var i;

// See if the item already exists in the list, if so then increment the quantity.

for (i = 0; i < this.items.length; i++)
if (this.items[i].catalogNumber == item.catalogNumber) {
this.items[i].quantity++;
return;
}

// Otherwise, add it to the end of the list.

this.items[this.items.length] = item;
}

// 删除产品项的方法 removeItem

function removeItem(catno) {

var i, j;
var tmp;

// See if the item already exists in the list, if so then decrement the quantity.

for (i = 0; i < this.items.length; i++)
if (this.items[i].catalogNumber == catno) {
this.items[i].quantity--;
if (this.items[i].quantity > 0)
return;

// If the quantity drops to zero, remove the item from the list. This is done by
// making a copy the array minus the item to be deleted.

tmp = new Array();
for (j = 0; j < i; j++)
tmp[tmp.length] = this.items[j];
for (j = i + 1; j < this.items.length; j++)
tmp[tmp.length] = this.items[j];
this.items = null;
this.items = tmp;
}
}

/******************************************************************************
* 对象定义结束 *
******************************************************************************/

// 此函数在下边的帧中显示购物车以及购物车上的产品

function displayCart() {

var i, s;
var total;

parent.frames["B"].document.open("text/html", "replace");
parent.frames["B"].document.writeln('<html><head><body bgcolor="#ffffff">');
parent.frames["B"].document.writeln('<font face="Arial,Helvetica" size=3>');
parent.frames["B"].document.writeln('<b>购物车:</b>');
parent.frames["B"].document.writeln('<p>');
parent.frames["B"].document.writeln('<table border=1 cellpadding=2 cellspacing=0>');
s = '<th><font face="Arial,Helvetica" size=3>产品名称</font></th>' +
'<th><font face="Arial,Helvetica" size=3>产品编号</font></th>' +
'<th><font face="Arial,Helvetica" size=3>价格</font></th>' +
'<th><font face="Arial,Helvetica" size=3>运费</font></th>' +
'<th><font face="Arial,Helvetica" size=3>数量</font></th>' +
'<th><font face="Arial,Helvetica" size=3>总价值</font></th>';
parent.frames["B"].document.writeln(s);

total = 0;
for (i = 0; i < cart.items.length; i++) {
parent.frames["B"].document.writeln('<tr>');
s = '<td><font face="Arial,Helvetica" size=3>' + cart.items[i].name + '</font></td>' +
'<td><font face="Arial,Helvetica" size=3>' + cart.items[i].catalogNumber + '</font></td>' +
'<td><font face="Arial,Helvetica" size=3>' + format(cart.items[i].price) + '</font></td>' +
'<td><font face="Arial,Helvetica" size=3>' + format(cart.items[i].shippingCost) + '</font></td>' +
'<td><font face="Arial,Helvetica" size=3>' + cart.items[i].quantity + '</font></td>' +
'<td><font face="Arial,Helvetica" size=3>' + format(cart.items[i].totalCost()) + '</font></td>';
parent.frames["B"].document.writeln(s);
total += cart.items[i].totalCost();
}

parent.frames["B"].document.writeln('</table>');
parent.frames["B"].document.writeln('<p>');
parent.frames["B"].document.writeln('<b>总金额:</b> ' + format(total));
parent.frames["B"].document.writeln('</font>');
parent.frames["B"].document.writeln('</body></html>');
parent.frames["B"].document.close();
}

// This function formats numbers as dollars and cents.

function format(n) {

var s = "$";
var d, c;

d = parseInt(n, 10);
c = Math.round((n - d) * 100);
if (c == 0)
c = "00";
else if (c < 9)
c = "0" + c;
return("$" + d + "." + c);
}

</script>
</head>
<body bgcolor="#ffffff">
<b><font size=2>用来说明自定义对象的一个简单购物车的例子:
</font>
</b>
<p>
<font size=2>请选择您想要购买的产品:
</font>
<font face="Arial,Helvetica" size=2>
<p>
</font>
<form>
<table border=0 cellpadding=4 cellspacing=0>
<tr bgcolor="#999999" valign=bottom>
<th><font size="3">产品项</font></th>
<th><font size="3">产品编号</font></th>
<th><font size="3">价格</font><font size=2><br></font><font face="Arial,Helvetica" size=2>(</font><font size="3">运费和加工费</font><font face="Arial,Helvetica" size=3>)</font></th>
<td> </td>
<td> </td>
</tr>
<tr bgcolor="#cccccc" valign=top>
<td><font face="Arial,Helvetica" size=2>Dehydrator</font></td>
<td><font face="Arial,Helvetica" size=2>9203-7</font></td>
<td><font face="Arial,Helvetica" size=2>$139.95 ($7.25)</font></td>
<td><input type="button" value="增加" onClick="cart.addItem(new Product('Dehydrator', '9203-7', 139.95, 7.50, 1)); displayCart();"></td>
<td><input type="button" value="删除" onClick="cart.removeItem('9203-7'); displayCart();"></td>
</tr>
<tr bgcolor="#999999" valign=top>
<td><font face="Arial,Helvetica" size=2>Blender</font></td>
<td><font face="Arial,Helvetica" size=2>9003-2</font></td>
<td><font face="Arial,Helvetica" size=2>$24.95 ($2.50)</font></td>
<td><input type="button" value="增加" onClick="cart.addItem(new Product('Blender', '9003-2', 24.95, 2.50, 1)); displayCart();"></td>
<td><input type="button" value="删除" onClick="cart.removeItem('9003-2'); displayCart();"></td>
</tr>
<tr bgcolor="#cccccc" valign=top>
<td><font face="Arial,Helvetica" size=2>Juicer</font></td>
<td><font face="Arial,Helvetica" size=2>9117-1</font></td>
<td><font face="Arial,Helvetica" size=2>$49.95 ($5.00)</font></td>
<td><input type="button" value="增加" onClick="cart.addItem(new Product('Juicer', '9117-1', 49.95, 5.00, 1)); displayCart();"></td>
<td><input type="button" value="删除" onClick="cart.removeItem('9117-1'); displayCart();"></td>
</tr>
</table>
<p>
</form>
<p>

<!-- This little snippet of code let's the user view the source for the page. -->

<form onSubmit="location.href = 'view-source:' + location; return false;">
<input type="submit" value="查看源代码!">
</form>

</body>
</html>
blues-star 2002-11-28
  • 打赏
  • 举报
回复
数据太多,慢,耐心等待吧,呵呵,估计要半分钟。
blues-star 2002-11-28
  • 打赏
  • 举报
回复
<script src="Convertor.js"></script>

<BODY onload="exp()">
<xml id=flashData src="http://www.chinatools.biz:9009/flashbook/result.xml"></xml>
<table id=data datasrc="#flashData">
<thead>
<TR>
<TH>标题</TH>
<TH>作者</TH>
<TH>时间</TH>
</TR>
</thead>
<tbody datafld="dataroot">
<TR>
<TD><div datafld="topic"></div></TD>
<TD><div datafld="UserName"></div></TD>
<TD><div datafld="dateandtime"></div></TD>
</TR>
</tbody>
</TABLE>
<script>
function exp()
{
var tmp = new Convertor();
tmp.HTMLData = document.all.tags("table")[0];
tmp.ExpToWord();
}
</script>
</BODY>

blues-star 2002-11-28
  • 打赏
  • 举报
回复
////////////////////////////CLASS CONVERTOR Version 1.0.0////////////////////////
/////////////////////////////////////By runmin///////////////////////////////////


//*************global vars**************

var charc = new Array();

var flg = 0;

for (var i=0;i<256;i++)
{
if ( i >= flg*26+26 ) flg++;

if (flg==0)
charc[i] = String.fromCharCode(i-(flg*26)+65);
else
charc[i] = String.fromCharCode(flg+64)+String.fromCharCode(i-(flg*26)+65);
}

//*cls Convertor*creator****************
function Convertor()
{
this.HTMLData; // Source Table Id

this.startX = 0; // Excel Start X Position
this.startY = 0; // Excel Start Y Position

this.showApp = true; // Show Office Application

this.lineStyle = 1; // LineStyle

this.ExpToExcel = ExpToExcel; // ExpToExcel Method
this.ExpToWord = ExpToWord; // ExpToWord Method
}

//*cls Convertor*Exp method(To Excel)***
function ExpToExcel()
{
var oExcel = new ActiveXObject("Excel.Application");
var oBook = oExcel.Workbooks.Add(); // Create WorkSheet
var oSheet = oBook.Worksheets(1);

var srcTRowlen = this.HTMLData.rows.length; // Source Table Rows length

var srcTCollen = this.HTMLData.rows[0].cells.length-1; // Source Table Cols length

// Add Cells
for (var i=0;i<this.HTMLData.rows.length;i++)
{
for (var j=0;j < this.HTMLData.rows[i].cells.length;j++)
{
oSheet.Range(charc[j+this.startX]+""+(i+1+this.startY)).Value = this.HTMLData.rows[i].cells[j].innerText;
}
};

// Set CellStyle
with (oSheet.Range(charc[this.startX]+""+(1+this.startY)+":"+charc[srcTCollen+this.startX]+""+(srcTRowlen+this.startY)))
{
Borders.LineStyle = this.lineStyle;
EntireColumn.AutoFit();
}

oExcel.Visible = this.showApp;
// oExcel.SaveWorkspace("c:\\tmp.xls");
// oExcel.Workbooks.Item(1).PrintOut();

// oExcel.Quit();
}

//*cls Convertor*Exp method(To Word)****
function ExpToWord()
{
var oWord = new ActiveXObject("Word.Application");
var oDocument = new ActiveXObject("Word.Document");

oDocument = oWord.Documents.Add(); // Create Document

// Add blank Table
oDocument.Tables.Add(oDocument.Range(0,0),this.HTMLData.rows.length,this.HTMLData.rows[0].cells.length);

// Add Table Content
for (var i=0;i<this.HTMLData.rows.length;i++)
{
for (var j=0;j<this.HTMLData.rows[i].cells.length;j++)
{
oDocument.Tables(1).Rows(i+1).Cells(j+1).Range.Text = this.HTMLData.rows[i].cells[j].innerText;
}
}

// Set CellStyle

oDocument.Tables.Item(1).Borders.InsideLineStyle = this.lineStyle;
oDocument.Tables.Item(1).Borders.OutsideLineStyle = this.lineStyle;
oDocument.Tables.Item(1).Rows.Item(1).Range.Bold = true;

oWord.Visible = this.showApp;
}

/////////////////////////////////////////////////////////////////////////////////

写的不好,见笑了:)
xqw2 2002-11-28
  • 打赏
  • 举报
回复
我对这方面还是不甚了解,有没有上面例子得详细说明,上面得例子我看了都是一头雾水(不明白)!
harryyang 2002-11-23
  • 打赏
  • 举报
回复
資料也是介紹的很簡單了.我看過了一些.沒甚麼參考價值
xqw2 2002-11-22
  • 打赏
  • 举报
回复
请问,有没有关于这方面的一些资料?
seabell 2002-11-22
  • 打赏
  • 举报
回复
<script language="JavaScript">
function MYOBJ(name,age,sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.toString = function(){
return "姓名:"+ this.name +"年龄:"+ this.age +"性别:" + this.sex
};
}
//在程序中便可以直接使用该对象,及其对象的属性和方法
var obj = new MYOBJ("ballack",26,"male");
alert(obj.toString());
alert(typeof(obj));
alert(obj instanceof MYOBJ);
alert(obj.constructor == MYOBJ);

</script>
harryyang 2002-11-21
  • 打赏
  • 举报
回复
下面是compute.html文件
<html>
<head><title>計算例子</title>
<body>
<script src="compute.js"></script>
<script language="JavaScript">

function fnCompute(inSym)
{
var v1 = document.all.value1.value;
var v2 = document.all.value2.value;
var strResult,strSym;
if(v1=="") v1 = 0;
if(v2=="") v2 = 0;
var compute = new clsCompute(v1,v2);
switch(inSym){

case "add":
strSym = "+";
strResult = compute.fnAdd();
break;
case "sub":
strSym = "-";
strResult = compute.fnSub();
break;
case "div":
if(v2==0) {
alert("error");
return;
}
strSym = "/";
strResult = compute.fnDiv();
break;
case "mul":
strSym = "*";
strResult = compute.fnMul();
break;
default:
return;
break;

}
document.all.result.value = strResult;
document.all.sym.innerText = strSym;
}

</script>
<table>
<input type="text" name="value1">
<span id="sym">+</span>
<input type="text" name="value2">=
<input type="text" id="result">
<br>
<input type="button" name="add" value=" add " onclick="fnCompute('add')">
<input type="button" name="sub" value=" sub " onclick="fnCompute('sub')">
<input type="button" name="div" value=" div " onclick="fnCompute('div')">
<input type="button" name="mul" value=" mul " onclick="fnCompute('mul')">
<input type="button" value=" TestSpace " onclick="fnTest()">
</table>
</body>
</html>
下面是compute.js文件..
function clsCompute(value1,value2){
var v1,v2;
this.v1 = parseInt(value1);
this.v2 = parseInt(value2);
this.fnAdd = fnAdd;
this.fnSub = fnSub;
this.fnDiv = fnDiv;
this.fnMul = fnMul;
}
function fnAdd(){
return this.v1+this.v2;
}
function fnSub(){
return this.v1-this.v2;
}
function fnDiv(){
return this.v1/this.v2;
}
function fnMul(){
return this.v1*this.v2;
}
用js只能實現數據和函數的封裝.有點像c中的結構!
JK_10000 2002-11-21
  • 打赏
  • 举报
回复
<form name=frm>
<input name=a>
<input type=button value=ok onclick="myForm.post();">
</form>
<script>
function MyForm(obj)
{
this.thisForm = obj;
this.post=postfun
function postfun()
{
alert('已经将您的设置发送。共有元素'+this.thisForm.elements.length+'个');
return true;
}
}
var myForm=new MyForm(document.frm);
</script>
希默软件 2002-11-21
  • 打赏
  • 举报
回复
JScript通过基于原型的对象支持继承。

JScript .NET 才允许声明定义对象数据和行为的类,从而支持基于类的对象。

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧