什么叫构造对象?

c1234 2003-09-18 09:31:13
什么叫构造对象?为什么叫构造?最好能举一下例子.
...全文
612 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
c1234 2003-09-18
  • 打赏
  • 举报
回复
错了,错了!
应该是构造函数,为什么(什么)叫构造?为什么(什么)构造函数?
c1234 2003-09-18
  • 打赏
  • 举报
回复
to showerXP(小阿!)
我就是看了书以后,发现对构造对象不懂。构造是什么意思?
lansquenet 2003-09-18
  • 打赏
  • 举报
回复
调用中

<script language="javascript">
var rs=new RecordSet("renshi");
rs.AddColumn("pnl_no","false","セ逆ぃ!",8,"眤ぃ禬筁8才!","","");
rs.AddColumn("p_name","false","セ逆ぃ!",20,"眤ぃ禬筁20才!","","");
rs.AddColumn("sex","false","セ逆ぃ!",1,"眤ぃ禬筁1才!","","");
rs.AddColumn("born_date","false","セ逆ぃ!",10,"眤ぃ禬筁10才!","IsDate","ゲ斗恶糶タ絋ら戳Α!");
rs.AddColumn("job","false","セ逆ぃ!",10,"眤ぃ禬筁10才!","","");
rs.AddColumn("id_type","false","セ逆ぃ!",20,"眤ぃ禬筁20才!","","");
rs.AddColumn("zip","false","セ逆ぃ!",6,"眤ぃ禬筁6才!","","");
rs.AddColumn("mynational","false","セ逆ぃ!",40,"眤ぃ禬筁40才!","","");
rs.AddColumn("mobil","false","セ逆ぃ!",14,"眤ぃ禬筁14才!","IsNumber","眤ゲ斗恶糶タ絋も诀腹絏");
rs.AddColumn("address","false","セ逆ぃ!",40,"眤ぃ禬筁40才!","","");
rs.AddColumn("email","true","セ逆ぃ!",20,"眤ぃ禬筁20才!","IsEmail","");
rs.SetKeyWord("pnl_no");
rs.InitSta("add","btn0","modify","btn1","delete","btn2","update","btn3","Cancel","btn4");
</script>
lansquenet 2003-09-18
  • 打赏
  • 举报
回复
function CancelOperator(){

for(i=0;i<this.buffers.length;i++){
eval("document.all."+this.Columns[i].Name).value=this.buffers[i];
eval("document.all."+this.Columns[i].Name).readOnly=true;
}
this.buffers=new Array();
this.NowStatus="";

setnip=3;


for(i=0;i<this.status.length;i++ ){
if( (this.status[i].OperType=="update") || (this.status[i].OperType=="Cancel") )
eval("document.all."+this.status[i].Control).disabled=true;
else
eval("document.all."+this.status[i].Control).disabled=false;
}
}


function ClearAllData(){
for(i=0;i<this.Columns.length;i++)
eval("document.all."+this.Columns[i].Name).value="";
return true;
}



function StoreAllDta(){
for(i=0;i<this.Columns.length;i++){
this.buffers[this.buffers.length++]=eval("document.all."+this.Columns[i].Name).value;

eval("document.all."+this.Columns[i].Name).readOnly=false;
}
return true;
}

//Set button Status
function setbuttonStatus(){
this.NowStatus=arguments[0];
setnip=2;
this.StoreData();
if(arguments[0]=="add")
this.ClearData();
if(arguments[0]=="modify")
for(var i=0;i<this.mykeywords.length;i++)
eval("document.all."+this.mykeywords[i]).readOnly=true;


for(i=0;i<this.status.length;i++ ){
if( (this.status[i].OperType=="update") || (this.status[i].OperType=="Cancel") )
eval("document.all."+this.status[i].Control).disabled=false;
else
eval("document.all."+this.status[i].Control).disabled=true;
}
}


function InitialStatus(){

for (i=0;i<arguments.length ;i++ ){
var obj=new Object();
obj.OperType=arguments[i];
obj.Control=arguments[++i];
this.status[this.status.length++]=obj;
}
}

//Check all of the Status
function CheckStatus(){

}

//Omit Blank Space
function Ospace(){
eval(arguments[0]+".value="+arguments[0]+".value.replace(/(^\\s*)|(\\s*$)/g, \"\")");
if(eval(arguments[0]+".value.length")==0)
return false;
else
return true;
}


//Check Column Length
function ChkLength(){
if(eval(arguments[0]+".value.length")>arguments[1])
return false;
else
return true;
}

//Check Letter and Number
function IsEn(){
if(arguments[0].value.length==0)
return true;
var reg=/^[a-z0-9.]*$/gi;
if(reg.test(arguments[0].value)==false)
return "You must enter Letter or Number !";
else
return true;
}

//Check E-mail
function IsEmail(){
if(arguments[0].value.length==0)
return true;
var reg = /^([a-z]){1,}([\.a-z0-9_\-]){1,}([a-z0-9]){1,}@([a-z0-9_-]){3,}(\.([a-z0-9]){2,4}){1,2}$/gi;
if(reg.test(arguments[0].value)==false){
return "You must enter E-mail !";
}
else
return true;
}

//Check Date
function IsDate(){
if(arguments[0].value.length==0)
return true;
var reg=/^(\d{4})(-|\/)(0?[1-9]|1[0-2])(-|\/)(0?[1-9]|[12][0-9]|3[01])$/g;
var r=reg.exec(arguments[0].value);
if(r==null)
return "You must enter Date !";
var d=new Date(r[1], r[3]-1,r[5]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
var reg=/(\/|-)(0*)( *)([1-9])/g;
var t=arguments[0].value.replace(reg,'$1$4');
if (newStr==t)
return true;
else
return "You must enter Date !";
}

//Check Number
function IsNumber(){
if(arguments[0].value.length==0)
return true;
if(arguments[0].value*1==arguments[0].value)
return true;
else
return "You must enter number !";
}


//Check only enter English
function IsEnglish(){
if(arguments[0].value.length==0)
return true;
var reg=/^[a-z]*$/gi;
if(reg.test(arguments[0].value))
return true;
else
return "You only enter English !";
}

//You Only enter Chinese
function IsChinese(){
if(arguments[0].value.length==0)
return true;
var reg = /[^\u4E00-\u9FA5]/g;
if(reg.test(arguments[0].value)==false)
return true;
else
return "You only enter Chinese !";
}

//you don't enter chinese or all-letter
function IsNoChinese(){
if(arguments[0].value.length==0)
return true;
var reg=/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;
if(reg.test(arguments[0].value)==false)
return true;
else
return "You don't enter chinese or all-letter !";
}

//Add New Recordset
function UpdateData(){
if(this.RuleCheck()==false){
return false;
}
var sql_1="";
var sql_2="";
if(this.NowStatus=="add"){ //add sql
for(var i=0;i<this.Columns.length;i++){
sql_1+=this.Columns[i].Name+",";
if(eval("document.all."+this.Columns[i].Name+".value.length")>0)
sql_2+="'"+eval("document.all."+this.Columns[i].Name+".value")+"',";
else
sql_2+="null,";
}
sql_1="insert into "+this.STable+"("+sql_1.substr(0,sql_1.length-1)+") values("+sql_2.substr(0,sql_2.length-1)+")";
document.all.btn6.value=sql_1;
this.NowStatus="";
document.all.btn5.click();
top.SubLeftFrame.document.location=top.SubLeftFrame.document.location;
}

if(this.NowStatus=="modify"){ //update sql
var tmp="";
for(var i=0;i<this.mykeywords.length;i++)
tmp+=this.mykeywords[i];
for(var i=0;i<this.Columns.length;i++)
if(tmp.indexOf(this.Columns[i].Name,0)==-1){
if(eval("document.all."+this.Columns[i].Name+".value.length")>0)
sql_1+=this.Columns[i].Name+"='"+eval("document.all."+this.Columns[i].Name+".value")+"',";
else
sql_1+=this.Columns[i].Name+"=null,";
}
for(var i=0;i<this.mykeywords.length;i++){
sql_2+=this.mykeywords[i]+"='"+eval("document.all."+this.mykeywords[i]+".value")+"' and"
}
sql_1="update "+this.STable+" set "+sql_1.substr(0,sql_1.length-1)+" where "+sql_2.substr(0,sql_2.length-4)
this.NowStatus="";
document.all.btn6.value=sql_1;
document.all.btn5.click();
top.SubLeftFrame.document.location=top.SubLeftFrame.document.location;
}
return true;
}

//Check Rule with Object
function RuleCheck(){
for(var i=0;i<this.Columns.length;i++){
var j=this.Columns[i];
var tCont="document.all."+j.Name;
if(j.isNull=="false"){ //Check IsNull
if(Ospace(tCont)==false){
alert(j.IsNullErrMsg);
eval(tCont+".focus()");
eval(tCont+".select()");
return false;
}
}
if(ChkLength(tCont,j.lengs)==false){
alert(j.ChecklengthErrMsg);
eval(tCont+".focus()");
eval(tCont+".select()");
return false;
}

if(j.CheckFun){
var k=eval(j.CheckFun+"("+tCont+")");
if(k!=true){
if(!j.CheckFunErrMsg){
j.CheckFunErrMsg=k;
}
alert(j.CheckFunErrMsg);
eval(tCont+".focus()");
eval(tCont+".select()");
return false;
}
}
}
return true;
}

//Add rule with the column
function AddColumn(){
var obj=new Object();
obj.Name=arguments[0];
obj.isNull=arguments[1]; //isnull progerty
if(arguments[2].length) obj.IsNullErrMsg=arguments[2];
else obj.IsNullErrMsg="You must enter content!";
obj.lengs=arguments[3];
if(arguments[4]) obj.ChecklengthErrMsg=arguments[4];
else obj.ChecklengthErrMsg="You have over Max-length "+arguments[3]+" !";
obj.CheckFun=arguments[5];
if(arguments[6]) obj.CheckFunErrMsg=arguments[6];
else obj.CheckFunErrMsg="";
this.Columns[this.Columns.length++]=obj;
return obj;
}

//Create Object Recordset
function RecordSet(SourTable){
//膀セ妮┦
this.point=0;
this.STable=SourTable; 
this.NowStatus="";
this.status=new Array();
this.mykeywords=new Array();
this.Columns=new Array();
this.buffers=new Array();
this.AddColumn=AddColumn;


this.SetPriKey=SetPriKey;
this.RuleCheck=RuleCheck;
this.InitSta=InitialStatus;
this.SetStatus=setbuttonStatus;
this.ChkSta=CheckStatus;
this.StoreData=StoreAllDta;
this.ClearData=ClearAllData;
this.UpdateData=UpdateData;
this.DeleteRecord=Gr_DeleteRecord;
this.CanOper=CancelOperator;
}

var setnip=3;
var oPopup=window.createPopup();
lansquenet 2003-09-18
  • 打赏
  • 举报
回复
很久以前写的,随便贴贴

//recordset.js Create a recordset model
// modification history
//-------------------------------------------------
// 07 Jan 2003 by greg.t create file
// 21 Feb 2003 by greg.t modify object

//Format :: AddColumn(ContronName,IsNull,IsNullErrMsg,CheckLength,CheckLengthErrMsg,CheckFunction,CheckErrMsg)

// Rule FunName List:
// 1.Omit Bland Space : Ospace
// 2.Check Column Length : ChkLength
// 3.Check Letter and Number : IsEn
// 4.Check Email : IsEmail
// 5.Check Date : IsDate
// 6.Check Number : IsNumber
// 7.Check Only English : IsEnglisth
// 8.Check not Chinese or all-letter : IsNoChinese
// 9.You Only enter Chinese : IsChinese

//delete recordset
function Gr_DeleteRecord(){
if(confirm("Are you sure?")){
var sql="delete from "+this.STable+" where "
for(var i=0;i<this.mykeywords.length;i++)
sql+=this.mykeywords[i]+"='"+eval("document.all."+this.mykeywords[i]+".value")+"' and";
sql=sql.substr(0,sql.length-4);
this.ClearData();
document.all.btn6.value=sql;
document.all.btn5.click();
top.SubLeftFrame.document.location=top.SubLeftFrame.document.location;

}
}


function SetPriKey(){
for(var i=0;i<arguments.length;i++)
this.mykeywords[this.mykeywords.length++]=arguments[i];
}


showerXP 2003-09-18
  • 打赏
  • 举报
回复
不是吧!那你快去看看有关OOA的书比较好!楼上的只是个简单的例子,你要是想知道到底有什么用,什么时候用他就最好静下心来看一本理论书再说。
hrong 2003-09-18
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript"><!--
function hrong()
{
this.name = "hrong";
}
var e = new hrong();
alert(e.name);
//--></SCRIPT>
btchong 2003-09-18
  • 打赏
  • 举报
回复
一种 JScript 函数,具有两个特殊的性质:
由 new 运算符来调用此函数。
通过 this 关键字将新创建对象的地址传递到此函数。

lansquenet 2003-09-18
  • 打赏
  • 举报
回复
构造函数就是对象的初始化,就象人一出世就有胳膊,有腿,同样对象也有自己的属性,那么构造函数就相当于给一个新对象设置好应该有的属性.

同时还有析构函数,释放对象的

87,987

社区成员

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

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