1.我个人认为学习前一定要搞清楚一点概念,还要问问这样做有什么好处?
2.在javascript看来,对象就是一系列的键-值对的对象,其中可以把这些键-值对当做属性引用,如: person.name
3.创建一个对象var obj = new Object()或者var obj = {}, var person = {name:"dexter",age:23,sex:"男"}
4.属性引用的方法alert(person.name)或者alert(person["name"]),区别[]获取属性的功能更加强大,因为[]里面可以是表达式
5.循环对象中的属性 for(var props in person){valString += person[props];}
6.删除一个属性 delete person.name
7.js对象也有构造函数
8.创建数据可以用[] 或者Array()构造函数new一个
var array1 = [] //创建空数组
var array2 = new Array() //创建空数组
array1 = [1 , "s" , [3,4],{name1:"name1"}]
alert(array1[2][1]) //4
alert(array1[9]) //undefined
9.数组引用alert(array1[1]) //s,可以用delete删除数组一个属性,效果使到相应索引位置上的属性变为undifined,可以设置数组的属性length,大于length-1的属性将被删除。
10.javascript函数
function f(x){....}
使用!操作符验证参数
function f(x){
if(!x){
alert("参数x不能为空");
return false;
}
}
11.带默认参数的函数
function ff(person){
var defaultPeson = {name:"name1",age:23};
person = person||defaultPerson;
}
12.对象的Arguments属性,function myargs(){ alert(arguments.length) ; alert(arguments[0])}
myargs(); //0 ----undefined
myargs("1" , [1,2]) // 2 ----- 1
13.对象Arguments对象有一个callee属性,表示了当前arguments对象所在的方法,可以使用它来实现匿名函数的内部递归调用
function(x){
if(x<=1)return 1;
return x* argments.callee(x-1);
}
14.对象里面的方法
var obj = {f0:function(){alert("this is a method in an object")}}
function f1(){alert("f1")}
obj.f1 = f1 ; //为对象添加方法
15.方法内部用关键词应用当前对象
var obj = {name:"name" , sex:"female"}
obj.print = function(){alert(this.name + "_" + this["sex"])};
16.一个面向对象的例子
var Person = {name:"dexter",setName:function(name){this.name=name}//setter,printName:function(){alert(this.name)}}