javascript基础总结

本文介绍了JavaScript中的对象初始化、构造函数定义、属性访问及函数创建等多种技术。覆盖了对象的创建方式、属性设置与访问、函数定义及应用等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用对象初始化程序
  除了用构造函数来创建对象,您可以用对象初始化程序创建对象,对象初始化程序(Object initializer)技术是从 C++ 中引用来的,它的用法如下:

    objectName = {property1:value1, property2:value2,..., propertyN:valueN}

例子:

a={x:1,y:2};
alert(a.x);

 2.用构造函数定义对象类:

  创建一个函数来指定对象的名字、属性和方法来定义对象类,例如假设您需要创建的对象类为 car,它具有属性 make、model、year 和 color,您可以这样:

function car(make, model, year) {
 this.make = make
 this.model = model
 this.year = year
}
 



现在您可以创建一个对象:mycar,

mycar = new car("Eagle", "Talon TSi", 1993)

 


您还可以给先前定义的对象添加一个属性,如:mycar.color = "black" ,然而它不会影响其它的同类对象。

 

3.索引对象属性
  在 JavaScript 中,对象也是一个数组,可以按名称(使用对象名称,后跟一个圆点和属性的名称)来引用一个对象的任何成员(属性和方法), 也可以按其数组下标索引来引用。JavaScript 中下标的是从 0 开始编号的,也可以用其名称来引用下标。因此您可用多种方法来引用属性,如果某文档有两个表单,其中第二个表单名为“myForm”下面的方法是等价的:

document.myForm
document.forms[1]  // [1] 是 HTML 源顺序中属性 forms 的索引。
document.forms["myForm"]

4 为对象类定义属性
  您可以用 prototype 属性在先前定义的对象类中加入一个属性,它可以被所有指定的对象类所共享。下面的代码为 car 类所有的对象添加一个 color 属性,并为 car1 的 color 属性赋值:

Car.prototype.color=null
car1.color="black"

 

 


5.数组的初始化:

 

var a=new Array();
a=[1,1,1,2,333];

var a=[1.1,{x:2,y:33}];
alert(a[1].x);

var a=[1,,,,,3];

 6.prototye: (5个)

    Number,String,Boolean, undefined , and null

    String

       可以使用包装类

       var s=new String("ssssss");

    Number :

 

Properties of the Number Object Relevant to Special Numeric Values

Property

Value

Number.MAX_VALUE

Largest magnitude representable

Number.MIN_VALUE

Smallest magnitude representable

Number.POSITIVE_INFINITY

The special value Infinity

Number.NEGATIVE_INFINITY

The special value –Infinity

Number.NaN

The special value NaN

    Boolean:

 var b0=new Boolean(true);
  var b1=new Boolean();//false
 var b2=false;
 

7.Date对象

var now=new Date();
var xmas=new Date(2008,11,25);//表示2008年12月25日,因为月份是从0开始

 8.for/in

 

for(variable in object){
     statement;
}

eg:
 //枚举数组下标
var a=[1.1,{x:2,y:33}];
for(var i in a){
	document.writeln(i);
}

//把一个对象的所有属性名复制到一个数组中
var a={x:1,y:22};
var b=new Array();
var i=0;
 for(b[i++] in a);
document.write(b[0]);





 9.throw语句

if(x<0)throw new Error("错了!!!");

 10.try/catch/finally

try{}
catch(ex){}
finally{}

 11.typeof

 

 var a="ddd";
document.write(typeof a );

 12. 使用Function()创建函数(动态的创建函数 )

    创建函数除了使用function语句之外,还可以使用如下:

var f=new Function("x","return x*x;");

var f2=new Function("x","y","return x*y");

 13函数直接量

 var a=new Array();
 a[0]=function(x){return x*x;};//定义函数并保存它,调用的时候可以使用a[0](2)语句
 
 a.sort(function(a,b){return a-b;}); //定义函数,把它传递给另外一个函数
 var ttt=(function(x){return x*x;})(10);//定义函数并调用

var f=function fact(x){return x*fact(x-1);}//注意该函数没有真正创建名称为fact的函数,只是使用这个名字来
引用自己实现递归.(参考第16点)

 14作为数据的函数

function sq(x){return x*x;};
var b=sq;//现在 本b引用的函数和sq一样.
var c=b(22);

function add(x,y){return x+y;};
function operate(fun,p1,p2){
	return fun(p1,p2);
}
 operate(add,1,3) ;

//和上面相同的方式重新实现,
var operators=new Object();
operators["add"]=function(x,y){return x+y};
function operate2(fun_name,p1,p2){
	return operators[fun_name](p1,p2);
}
 operate2("add",operate2("add",1,11),1) ;

15.将对象保存在数组中,间接改变对象的值.

<table border=1 id="win1" width=100>
	<tr>
		<td>
			fasfa
		</td>
	</tr>
</table>
<script>
 	t=document.getElementById("win1");
	o=new Array();
	o.push(t);
	o[0].width=200;
</script>

 16.函数真正的参数:Arguments对象.

对于函数参数可变的情况,使用arguments非常管用,用法和数组一样,不过要记住它不是数组噢!

改变arguments[0]的值就会改变函数第一个参数的值,依次类推.

     属性callee: 用来调用函数自己,对于没有函数名的变量非常有用.

function(x){
    return arguments.callee(x-1);
}

 17.函数属性.(Function对象)

javascript函数都是对象!你调用函数的时候可以传入任意的函数个数,所以就有了只读属性length .

length属性:

   他的作用就是返回函数定义的实际参数个数.用法如下:

 
function check(args){
    var actual=args.length;                //实际的参数个数
    var expected=args.callee.length; //要求的参数个数


}

 prototype属性

 

 18.对象属性的枚举

 var oo=new Object();
 oo.id="22";
 oo.name="ztc"
function f(obj){
	 for(var o in obj){
			document.writeln(o);

	 }

}

 19.删除未定义的属性.

delete oo.id;
delete oo.name;

 delete 是真正的把该属性从对象中移除.

 

20.用构造函数定义方法.

注意这种方法定义方法会损耗很大的内存! 最好使用"原型方式"创建

 

function test(){alert("hi!");};
function fun(){
	this.t=test;
}
var f=new fun();
f.t();

 21.类属性/方法

类名.属性名= 值

类名.方法名=function (){};

 

22.继承

function A(){
	this.x=1;
	this.y=2;

}


function B(){
	this.z=9;
}

B.prototype=new A();
B.prototype.constructor=B;//constructor属性用来引用构造函数.





B.prototype.method=function(){
		alert(this.y);

}
b=new B();
b.method();


 constructor可以用来确定给定对象的类型

if((typeof o == "object") && (o.constructor == Date)){

   

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值