学javaScript时,应该忘了JAVA。
与JAVA中的不同之处:
一,javaScript的方法是否能够重载
function add(m,n){
return m+n;
}
function add(m){
return m+10;
}
function testAdd(){
var r = add(6,4);// 方法里只有一个参数,所以6参加运算,后面的4就不要了
alert(r);
}
//结果为16,因为在javaScript中不存在方法的重载
/*而function add(m,n){
return m+n;
}等价于另外一种写法:
var add = new Function("m","n","return m+n");
括号中前面两个为参数,最后一个为方法体*/
————————————————————————————————————————
二,函数可当变量使用
function testAdd2(){
var ttt = add;
var r = ttt(9);
alert(r);
}//结果为19,这其实是javaScript最灵活的地方,它的函数实际上是一个变量
——————————————————————————————————————————
function testFun(f,m){//f作为函数来使用,m作为函数的参数来使用
var r = f(m);
alert(r);
};
function testAdd3(){
var r = testFun(add,7);//add是在外面定义的,全局变量,
alert(r);
}//结果为17,方法的回调
———————————————————————————————————————————
方法的回调
function onSuccess(msg){
alert("success:"+msg);
}
function onError(msg){
alert("error:"+msg);
}
function goSchool(r,success,error){
if(t<9){
error("你迟到了");
}else{
success("早");
}
}
function funCallback(){
goSchool(8,onSuccess,onError);
}
————————————————————————————————————————————————————————————
在javaScript里面,自定义一个类应该怎么做?
定义一个类,小写的也行,大写的也行,但作为一种默认的习惯 ,我们都会将类名首字母大写,在javaScript中,大小写是敏感的
var Person = function(){}; //定义类Person
Person.prototype.name = "tom";
Person.prototype.age = 10;//这两个属性只是添加在了对象上,并没有添加在类上,所以必须加上prototype
Person.prototype.getName = function(){return this.name};//添加了一个方法,作用便是将name返回回去
function testPerson(){
var p1 = new Person();//只要是用var定义的,不管是类还是什么,都可以new出来
alert(p1.name);
alert(p1.age);
}
prototype是javaScript的关键字,作用是声明name是类Person的原型属性。
如果不加prototype,则是对象属性
对象属性如果较多,可用for循环
for(var r in Person){
}