日期:2014-05-16  浏览次数:20359 次

JS的对象定义和eval函数的使用

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
?<head>
? <title> New Document </title>
? <meta name="Generator" content="EditPlus">
? <meta name="Author" content="">
? <meta name="Keywords" content="">
? <meta name="Description" content="">
? <script type="text/javascript">

? <!--
? JavaScript 本身是一种面向对象的语言,
? 它所涉及的元素根据其属性的不同都依附于一个特定的类。
? 我们所常见的类包括:数组变量(Array)、逻辑变量(Boolean)、
? 日期变量(Date)、结构变量(Function)、数值变量(Number)、
? 对象变量(Object)、字符串变量(String)等

? 1、所有的JScript 内部对象都有只读的protorype 属性。
? 可以向其原型中动态添加功能(属性和方法),
? 但该对象不能被赋予不同的原型。
? 然而,用户定义的对象可以被赋予新的原型。

? 2.为已有的类型添加方法

? 3为自己的类创建方法
? -->
? Number.prototype.add = function(num){
?return (this + num);
? }

//? alert((3).add(18.5));

? function Car(sColor, iDoors, iMpg){
?this.color = sColor;
?this.doors = iDoors;
?this.mpg = iMpg;
?this.drivers = new Array("Mike", "Sue");
? }

? Car.prototype.showColor = function(){
?alert(this.color);
? }

//? alert(new Car("red", 4, 10).drivers);

?

function Car2(sColor, iDoors, iMpg){
?this.color = sColor;
?this.doors = iDoors;
?this.mpg = iMpg;
?this.drivers = new Array("Mike", "Sue");

?if(typeof Car2._initialized == "undefined"){
??Car2.prototype.showColor = function(){
???alert(this.color);
??}
?}
? }

//? alert(new Car2("red", 4, 10).color);


function TestObjectA(){
?this.MethodA = function(){
??alert("TestObjectA.MethodA()");
?}
}

function TestObjectB(){
?this.MethodB = function(){
??alert("TestObjectB.MethodB()");
?}
}

TestObjectB.prototype = new TestObjectA();

var obj = new TestObjectB();
//obj.MethodA();
//obj.MethodB();

//eval函数的使用
//eval把一串字符串当做代码来执行
function evalTest(){
?var n = 3;
?var b=5,c=6;
?eval('a'+n+'=b*c');? <!-- => a3=b*c -->
}

evalTest();
alert(a3);
? </script>
?</head>

?<body>
?
?</body>
</html>