Javascript类的写法
Javascript中function即为类,在function内部用this设置类的public成员变量与方法,例如:
function myclass(name){
var str = "private string"; //private field
function privatefn(){ //private method alert(str);
};
this.name = name;
this.pubfn = function(){
privatefn(); //call private method
alert("myclass.pubfn");
}
}
使用时用new创建对象:
var obj = new myclass("123");
var name = obj.name; //access public field
obj.pubfn(); //call public method
上述是Javascript类最普通的写法,实际应用得较少,用得最多的是写成静态类的形式,Javascript的静态类有两种写法:
1. 类似Json对象的写法
var myclass = {
name : "123",
pubfn : function(){
alert("pubfn1 is called");
}
};
调用形式:myclass.name, myclass.pubfn()
这种写法使类的成员的访问权限均为public。
2. 匿名函数的写法
var myclass = function(){
var name = "123"; //private field
var privatefn = function(){ //private method
alert(name);
}
return{ //return public field and method
Name: "hello " + name, //public field
pubfn : function(){
privatefn(); //call private method
alert("this is a returned function"); //public method
}
}
}();
这种写法的好处是可以将私有和共有的成员方法和变量分开,实际应用中可将复杂的逻辑写的私有方法中,而return一个公用的接口调用私有方法。
调用形式:myclass.Name, myclass.pubfn()
注意类结尾处的小括号,它的作用是创建对象,去除小括号的话,则调用形式为:myclass().Name, myclass().pubfn()。
相关文档:
经常在ie6下出现javascript页面跳转和表单提交问题,ie6下实现javascript页面跳转和表单提交需要进行特别处理,需要使用setTimeout()函数延迟实现。
1,兼容各浏览器的Javascript页面跳转
setTimeout(function(){
window.location.href = url;
},0);
2,兼容各浏览器的Javascript表单提交
setTimeout(function ......
早上在csdn上看有人问页面style sheet怎么修改里面的rule,就写了个类,该类对兼容FF和IE做了处理。
/**//*--------------------------------------------
描述 : 添加新的样式rule
参数 : styleSheets索引
代码 :&nb ......
1. javascript 是区分大小写的,包括变量、函数名等等。
2. javascript 中的变量是弱类型的,定义变量时只用 var 运算符。
var test1 = "hi";
或者
var test1 = "hi",test2 = "hello";
或者(可以是不同的类型)
var test1 = "hi",test2 = 12;
或者(可以不用初始化)
var test1;
3. javascript 每条语句的结尾&ldqu ......
javascript对象之——内置对象“Math”
Math对象的一些方法能实现我们课本上的某些数学计算,比较常用的方法有如下几个:
一、Math.min()和Math.max(),分别返回参数中的最小和最大值
例:
alert(Math.min(1,2,3)) //输出 “1”
alert(Math.max(1,2,3)) //输出 &ldq ......
认清JavaScript和JAVA全局变量和局部变量的作用域
2010年2月28日 george 发表评论 阅读评论
通过淘宝面试题来认清JavaScript和JAVA全局变量和局部变量的作用域
注意两者是有严重区别的!
var a = 100;
function testResult(){
var b = 2 * a;
var a = 200;
var c = a / 2 ......