是什么对象?说清楚才好回答啊?
是个DHTML的元素,还是JS本身的对象?先给个可能有用的东西:
a=window.open(URL)
其后就可以使用:
a.closed
属性来判断看看一个窗口是否已经关闭。如果已经关闭就不要再试图访问其中的对象了,以免出错。
是个DHTML的元素,还是JS本身的对象?先给个可能有用的东西:
a=window.open(URL)
其后就可以使用:
a.closed
属性来判断看看一个窗口是否已经关闭。如果已经关闭就不要再试图访问其中的对象了,以免出错。
插入到当前窗口:obj.insertBefore(elm)或者obj.appendChild(elmJ)
obj为窗口中的一个容器元素,如td或span或div。
<html>
<head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function objClone(obj,creator)
//obj为要克隆的对象,creator为该对象的构造方法
{
result = new creator();
for (var i in obj)
result[i] = obj[i]
return result
}function OBJ() //一个类的构造方法
{
this.p1 = 0; //数值型的成员
this.p2= "";//串型的成员
this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
}var obj1 = new OBJ(); //构造一个新类
obj1.p1 = 99;
obj1.p2 = "emu(ston)"
obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1,OBJ);//克隆
//看看成果怎么样
alert(obj2.p1)
alert(obj2.p2)
alert(obj2.p3)//-->
</SCRIPT>
</body>
</html>这个例子要知道构造方法的,为的是保证克隆结果于原来的对象类型相同。如果对类型没有特殊要求,只要能访问成员就行,也可不用构造方法。
<head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function objClone(obj)
//obj为要克隆的对象,不需要构造方法
{
result = new Array();
for (var i in obj)
result[i] = obj[i]
return result
}function OBJ() //一个类的构造方法
{
this.p1 = 0; //数值型的成员
this.p2= "";//串型的成员
this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
}var obj1 = new OBJ(); //构造一个新类
obj1.p1 = 99;
obj1.p2 = "emu(ston)"
obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
//看看成果怎么样
alert(obj2.p1)
alert(obj2.p2)
alert(obj2.p3)//-->
</SCRIPT>
</body>
</html>这个,只要随便给个对象就可以克隆了。
<html>
<head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function objClone(obj)
//obj为要克隆的对象,不需要构造方法
{
result = new Array();
for (var i in obj)
result[i] = obj[i]
return result
}function OBJ() //一个类的构造方法
{
this.p1 = 0; //数值型的成员
this.p2= "";//串型的成员
this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
this.act1 = test;
}
function test()
{
for (var i in this)
alert(i+"="+this[i])
}
var obj1 = new OBJ(); //构造一个新类
obj1.p1 = 99;
obj1.p2 = "emu(ston)"
obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)
var obj2 = objClone(obj1);//克隆//看看成果怎么样
obj2.act1();
//-->
</SCRIPT>
</body>
</html>不过如果有原型方法的话还是用第一种方法来克隆吧。<html>
<head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function objClone(obj,creator)
//obj为要克隆的对象,creator为该对象的构造方法
{
result = new creator();
for (var i in obj)
result[i] = obj[i]
return result
}function OBJ() //一个类的构造方法
{
this.p1 = 0; //数值型的成员
this.p2= "";//串型的成员
this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
}
OBJ.prototype.act =alert; //一个原型方法var obj1 = new OBJ(); //构造一个新类
obj1.p1 = 99;
obj1.p2 = "emu(ston)"
obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1,OBJ);//克隆
//看看成果怎么样
alert(obj2.p1)
alert(obj2.p2)
alert(obj2.p3)
obj2.act()//-->
</SCRIPT>
</body>
</html>
<head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function objClone(obj)
//obj为要克隆的对象,不需要构造方法
{
result = new Object();
for (var i in obj)
result[i] = obj[i] return result
}function OBJ() //一个类的构造方法
{
this.p1 = 0; //数值型的成员
this.p2= "";//串型的成员
this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
}var obj1 = new OBJ(); //构造一个新类
obj1.p1 = 99;
obj1.p2 = "emu(ston)"
obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
obj1.p1=100;
obj1.p3[1]=100;
//看看成果怎么样
alert(obj2.p1)
alert(obj2.p2)
alert(obj2.p3)//-->
</SCRIPT>
</body>
</html>
<head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function objClone(obj)
//obj为要克隆的对象,不需要构造方法
{
result = new Object();
for (var i in obj)
result[i] = obj[i] return result
}function OBJ() //一个类的构造方法
{
this.p1 = 0; //数值型的成员
this.p2= "";//串型的成员
this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
}var obj1 = new OBJ(); //构造一个新类
obj1.p1 = 99;
obj1.p2 = "emu(ston)"
obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
obj1.p1=100;
obj1.p3[1]=100;
//看看成果怎么样
alert(obj2.p1)
alert(obj2.p2)
alert(obj2.p3)//-->
</SCRIPT>
</body>
</html>
alert("obj2的构造方法:"+obj2.constructor)
alert("obj1的构造方法:"+obj1.constructor)更正如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body><html>
<head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function objClone(obj)
//obj为要克隆的对象,不需要构造方法
{
result = new Object();
result.constructor = obj.constructor
for (var i in obj)
result[i] = obj[i]
return result
}function OBJ() //一个类的构造方法
{
this.p1 = 0; //数值型的成员
this.p2= "";//串型的成员
this.p3 = null; //对象型的成员(其实是引用,勉强也可叫指针)
}
OBJ.prototype.test=alert ;//一个原型方法var obj1 = new OBJ(); //构造一个新类
obj1.p1 = 99;
obj1.p2 = "emu(ston)"
obj1.p3 = new Array(1,2,3,4,5,6,7,8,9)var obj2 = objClone(obj1);//克隆
obj1.p1=100;
obj1.p3[1]=100;
//看看成果怎么样
alert(obj2.p1)
alert(obj2.p2)
alert(obj2.p3)
obj2.test()
alert("obj2的构造方法:"+obj2.constructor)
alert("obj1的构造方法:"+obj1.constructor)
//-->
</SCRIPT>
</body>
</html>
</body>
</html>不知还有什么特性被遗漏的没有。
<html>
<body>
<input type="button" value="test" onclick="alert('test')" name="emu" id="obj1">
<BR>
<SCRIPT LANGUAGE="JavaScript">
<!--function objClone(obj)
//增加了对网页元素克隆的判断
//增加了对构造方法的克隆
{
if (obj.cloneNode != null)
return obj.cloneNode(true);
result = new Object();
result.constructor = obj.constructor
for (var i in obj)
result[i] = obj[i]
return result
}var obj2 = objClone(obj1);//克隆
document.body.insertBefore(obj2)
//-->
</SCRIPT>
</body>
</html>
for in 的方法只对 JScript 的 Object Array Function的实例有效。
DHTML Element 要用 cloneNodedocument.body.insertBefore
(
obj1.cloneNode(true);//true代表子元素
)
{
return this.slice(0,length);
}
function Array.prototype.mid(start,length)
{
return this.slice(start,start+length);
}
function Array.prototype.right(length)
{
if(length>=this.length)return this.concat();
return this.slice(this.length-length,this.length);
}var arr=[0,1,2,3,4,5];
alert(arr.left(3))
alert(arr.mid(2,2))
alert(arr.right(3))
{
return this[index];
}//JScript5.5
function Array.prototype.removeItem(index)
{
this.splice(index,1);
}
//5.5
function Array.prototype.removeLeft(count)
{
this.splice(0,count);
}
//5.5
function Array.prototype.removeRight(count)
{
var start=this.length-count;
var length=count;
if(start<0)
{
start=0;
length=this.length;
}
this.splice(start,length)
}var a=[0,1,2,3,4,5];
a.removeItem(3)
alert(a)
{
return this[index];
}//JScript5.5
function Array.prototype.removeItem(index)
{
this.splice(index,1);
}
//5.5
function Array.prototype.removeLeft(count)
{
this.splice(0,count);
}
//5.5
function Array.prototype.removeRight(count)
{
var start=this.length-count;
var length=count;
if(start<0)
{
start=0;
length=this.length;
}
this.splice(start,length)
}var a=[0,1,2,3,4,5];
a.removeItem(3)
alert(a)
其实我也就是想知道js有没有现成的方法