ExtJs北风网学习总结

1.       JavaScript数据类准换

转换为Number:根据parseInt()来转化。

转换String:任何类型加字符串即为字符串。

转换Boolean:true,false,所有非0数字为true,否则为false

Undefind  / null 直接转换为false

 

2.       JavaScript数据专递

 基本数据类型采用值传递:

 

3.       JavaScript语法  函数与事件

函数和事件通常是一种绑定关系,通过事件调用函数。如果绑定多个函数,中间用分号隔开。

l       常用事件

l       Onload

l       OnClick

l       MouseOver 鼠标移动到指定目标上

l       MouseOut 鼠标离开指定目标

l       Focus 当元素获得焦点

l       Blur 当元素失去焦点

l       Change 1.输入内容发生改变,2.select选项发生改变

l       Onkeyup 键盘案件弹起

l       常用事件

l       Onload

l       OnClick

l       MouseOver 鼠标移动到指定目标上

l       MouseOut 鼠标离开指定目标

l       Focus 当元素获得焦点

l       Blur 当元素失去焦点

l       Change 1.输入内容发生改变,2.select选项发生改变

l       Onkeyup 键盘案件弹起

 

4.       JavaScript面向对象编程

JavaScript定义属性和方法

方法一:

function Test(){
//javascript定义属性
Test.prototype.name="zsw";
//javascript定义方法
Test.prototype.say = function(){
alert(this.name + " love hy!");
};
}

function a(){
new Test().say(); //javascript调用方法
}

 

  方法二:

function boy(){
//js通过this定义属性
this.name = "zsw";
this.age = 21;
//js通过this定义方法
this.say = function(){
alert(this.name + " love hy!");
}
};

function b(){
var _boy = new boy();
alert(_boy.name);
alert(_boy.age+"");
_boy.say();
};

总结:

定义属性,方法

1.使用prototype创建

2.使用this创建

 

 

5.       Json的方式创建对象

var json = {name:'zsw',age:20};
alert(json.name);

 

function showName(o){
alert(o.name);
alert(o["name"]);
}

function showObject(){
var json = "{name:'zsw',age:20}";


showName(eval("("+json+")"));
}

 

Json对象是可以传递的

原理:JSON可以在字符串和对象间转换。

可以通过JavaScript的eval()方法将字符串转换成对象。

 

6.动态添加属性和方法

function test1(){};
function runTest1(){
var t1 = new test1();
t1.name = "zsw";
t1.age = 21;
t1.say = function(){
alert("Hello World!!!");
};
alert(t1.name);
t1.say();
};

 

7.在内置对象添加属性和方法

 

 

8.Javascript面向对象中的继承

function Person(){
Person.prototype.name = "zsw";
Person.prototype.age = 21;
Person.prototype.say = function(){
alert("Javascript 面向对象的继承");
};
}

function Student(){
Student.prototype.schoolName = "bdqn";
}

function TestStu(){
Student.prototype = new Person();
var s = new Student();
alert(s.schoolName);
s.say();
}

 

9.定义私有属性

function Person(){
Person.prototype.name = "zsw";
Person.prototype.age = 21;
Person.prototype.say = function(){
alert("Javascript 面向对象的继承");
};
}

function Student(){
Student.prototype.schoolName = "bdqn";
//定义私有属性
var gfName = "hy";
}

function TestStu(){
Student.prototype = new Person();
var s = new Student();
alert(s.schoolName);
s.say();

alert(s.gfName); //不可见,因为访问的私有属性

}

 

10.定义静态属性

function Person(){
Person.prototype.name = "zsw";
Person.prototype.age = 21;
Person.prototype.say = function(){
alert("Javascript 面向对象的继承");
};
}

function Student(){
Student.prototype.schoolName = "bdqn";
//定义私有属性
var gfName = "hy";
Student.cityName = "深圳";
}

function TestStu(){
Student.prototype = new Person();
var s = new Student();
alert(s.schoolName);
s.say();

alert(s.gfName); //不可见,因为访问的私有属性

//访问静态属性
alert(Student.cityName);
}

 

 

11.Json对象

定义Json对对象,在对象中添加属性:

function jsonTest(){
var jsonObj = {
name:'周尚武',
sex:'男',
age:21
};

alert(jsonObj.name);
}

Json添加方法:

function jsonTest(){
var jsonObj = {
name:'周尚武',
sex:'男',
age:21,
say:function(){
alert("Json对象中添加方法!");
}
};

alert(jsonObj.name);
jsonObj.say();
}

Json添加子对象:

function jsonTest(){
var jsonObj = {
name:'周尚武',
sex:'男',
age:21,
say:function(){
alert("Json对象中添加方法!");
}
};

alert(jsonObj.name);
jsonObj.say();


var jsonArray = ["A","B","C"];
alert(jsonArray[0]);
}

在此复习一下静态方法

function test(){
test.prototype.name="huangyi";
test.cityName="深圳";
}
function T(){
alert(test.cityName); //将输出undefined
}

以上调用test.cityName必须先把test实例化一下:

function test(){
test.prototype.name="huangyi";
test.cityName="深圳";
}
function T(){
new test();
alert(test.cityName);
}

总结:

Javascript面向对象和所有面向对象编程语言一样,都是通过实例化的方式进行访问,两个对象间的非静态变量不会被干扰。

JSON中,属性可以是方法,甚至可以是一个子对象。

使用静态变量,需要实例化一下function,告诉浏览器它不是函数,而是对象。

 

 

12.方法覆盖

function test(){
test.prototype.name = "zsw";
test.prototype.age = 21;
test.prototype.say=function(){
alert("Hello World!");
}
}

function T(){
var t = new test();
t.say = function(){
alert("你好!");
}
t.say();
}

 

13.重写window.alert();提示框

<script type="text/javascript">
function run(){
window.alert = function(s){
var o = document.getElementById("Layer1");
o.innerHTML = "<input name='button' type='button' οnclick='closeWin()' value='关闭' />"+s;
o.style.display = "block";
}

window.show = function(s){
alert(s);
}

show('zsw love hy!!');
}

function closeWin(){
var o = document.getElementById("Layer1");
o.style.display = "none";
}
</script>
<style type="text/css">
<!--
#Layer1 {
position:absolute;
left:341px;
top:168px;
width:296px;
height:142px;
z-index:1;
color:#FFFFFF;
display:none;
background-color:#00CC99;
}
-->
</style>
</head>

<body>
<div id="Layer1">

</div>
<input type="button" value="点击" οnclick="run()" />
</body>

 

补充:javascript复制继承法

<mce:script type="text/javascript"><!--
function dw(s){
alert(s);
}

Function.prototype.extend_p = function(obj){
for(var i in obj){
this.prototype[i] = obj[i];
}
}

Person = function(){
this.name = "accp";
this.setName = function(obj){
this.name = obj;
}
this.getName = function(){
return this.name;
}
}


Student = function(){

}

Student.extend_p(new Person());

var s = new Student();
s.setName('黄翊');
dw(s.getName());

// --></mce:script>

 

Javascript 原始继承法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>javascript原始继承法</title>
<mce:script type="text/javascript"><!--
function ds(s){
alert(s);
}

Person = function(){
this.name = "hy";
this.setName = function(obj){
this.name = obj;
}
this.getName = function(){
return this.name;
}
}

Student = function(){
this.stuNo = "0001";
}

Student.prototype = new Person();

var stu = new Student();

stu.setName('黄翊');
alert("名字:"+stu.getName());
alert("编号:"+stu.stuNo);
// --></mce:script>
</head>
<body>
</body>
</html>