Javascript笔记(高级)
来源:互联网 发布:关口知宏2017来中国 编辑:程序博客网 时间:2024/06/05 06:04
/*------------------------------------第一章 Function对象---------------------------------*/
//1.Function 对象引入
Function是js的方法对象,可以用Function实例化出任何js方法对象;
<script>
function say(name,age){
alert(name+"今年"+age+"岁了");
}
say("张三",3);
</script>
//2.用Function创建方法对象
<script>
//证明js中函数是方法对象
var sayFunc = new Function("name","age","alert(name+'今年'+age+'岁了')");
sayFunc("lisi","13");
</script>
//3.Function对象属性
<script>
var sayFunc = new Function("name","age","alert(name+'今年'+age+'岁了')");
//sayFunc("lisi","13");
//类似java有一个Object类作为根类,所以也有从根类继承的方法
alert("sayFunc方法对象的属性个数:"+ sayFunc.length);
</script>
//4.Function对象方法
document.write(sayFunc.toString());//显示源码
document.write(sayFunc.valueOf());//显示源码
/*------------------------------------第二章 JavaScript闭包---------------------------------*/
//1.Js变量的作用域
在函数中,不用 var 定义就是全局变量。
//2.从外部读取方法内部的局部变量
要想从外部读取方法内部的局部变量的话,就要在该方法内部定义一个可以获取局部变量的函数,然后在外部调用该函数。
<script>
function func(){
a = 22;
}
func();//要先调用函数去定义a这个全局变量
alert(a);
</script>
//3.闭包的概念
各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。
我的理解是,闭包就是能够读取其他函数内部变量的函数。
由于在 Javascript 语言中,只有函数内部的子函数才能读取局部变量,
因此可以把闭包简单理解成“定义在一个函数内部的函数”。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
<script>
function func(){
var a = 22;
function func2(){
return a;
}
return func2;
}
var result = func();
alert("访问func的私有局部变量a:"+result());
</script>
//4.闭包的用途
一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
//5.闭包的使用注意点
1) 由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性
能问题,在 IE 中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
2) 闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包
当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随
便改变父函数内部变量的值。
/*------------------------------------第三章 JavaScript面向对象实现---------------------------------*/
//1.面向对象三大特征
1. 封装
2. 继承
3. 多态
详情:http://blog.csdn.net/hbsxjs/article/details/54988484
//2.JavaScript自定义对象
创建对象方式:
// 方式一:对象初始化器方式
<script>
//创建对象方式:方式一
var marry = {
name : "marry",
age : 2,
shout : function() {
alert("我是:" + this.name + ",年龄:" + this.age);
},
action : function() {
alert("会吃");
}
};
alert(marry.name);
alert(marry.age);
marry.action();
marry.shout();
</script>
// 方式二:构造函数方式
<script>
function Dog(name,age){
this.name = name;
this.age = age;
this.shout=function(){
alert("我是:" + this.name + ",年龄:" + this.age);
};
this.action=function(){
alert("会吃");
};
}
var jack = new Dog("jack",1);
jack.shout();
jack.action();
</script>
对象属性定义: 私有属性;
对象属性; 类属性;
对象方法定义: 私有方法;
对象方法; 类方法;
<script>
function C(){
this.objPro1="对象属性1";
C.prototype.objPro2="对象属性2";//也可以用原型定义对象属性
var privatePro="私有属性";
}
C.classPro="类属性";
alert(C.classPro);
var c = new C();
alert(c.objPro1);
alert(c.objPro2);
</script>
//3.JavaScript实现封装特性
<script>
function C(){
var privateFunc=function(){
alert("私有方法");
};
privateFunc();//如果先弹出"私有方法",证明私有方法是在new的时候内部调用的
this.objFunc=function(){
alert("对象方法");
};
C.prototype.objFunc2=function(){
alert("对象方法2");
};
}
C.classFunc=function(){
alert("类方法");
};
C.classFunc();//类方法直接用类名调用
var c = new C();
c.objFunc();
c.objFunc2();
</script>
//4.JavaScript实现继承特性
Apply() 实现属性和方法的继承:
<script>
function Animal(name,age){
this.name = name;
this.age = age;
this.shout=function(){
alert("我是:" + this.name + ",年龄:" + this.age);
};
this.action=function(){
alert("会吃");
};
}
function Dog(name,age){
Animal.apply(this,[name,age]);//相当于克隆了Animal的属性、方法给Dog用
}
var jack = new Dog("jack",1);
alert(jack.name);
alert(jack.age);
jack.shout();
jack.action();
</script>
Prototype 实现原型的继承;
//5.JavaScript实现多态特性
http://blog.csdn.net/likendsl/article/details/53582320
//1.Function 对象引入
Function是js的方法对象,可以用Function实例化出任何js方法对象;
<script>
function say(name,age){
alert(name+"今年"+age+"岁了");
}
say("张三",3);
</script>
//2.用Function创建方法对象
<script>
//证明js中函数是方法对象
var sayFunc = new Function("name","age","alert(name+'今年'+age+'岁了')");
sayFunc("lisi","13");
</script>
//3.Function对象属性
<script>
var sayFunc = new Function("name","age","alert(name+'今年'+age+'岁了')");
//sayFunc("lisi","13");
//类似java有一个Object类作为根类,所以也有从根类继承的方法
alert("sayFunc方法对象的属性个数:"+ sayFunc.length);
</script>
//4.Function对象方法
document.write(sayFunc.toString());//显示源码
document.write(sayFunc.valueOf());//显示源码
/*------------------------------------第二章 JavaScript闭包---------------------------------*/
//1.Js变量的作用域
在函数中,不用 var 定义就是全局变量。
//2.从外部读取方法内部的局部变量
要想从外部读取方法内部的局部变量的话,就要在该方法内部定义一个可以获取局部变量的函数,然后在外部调用该函数。
<script>
function func(){
a = 22;
}
func();//要先调用函数去定义a这个全局变量
alert(a);
</script>
//3.闭包的概念
各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。
我的理解是,闭包就是能够读取其他函数内部变量的函数。
由于在 Javascript 语言中,只有函数内部的子函数才能读取局部变量,
因此可以把闭包简单理解成“定义在一个函数内部的函数”。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
<script>
function func(){
var a = 22;
function func2(){
return a;
}
return func2;
}
var result = func();
alert("访问func的私有局部变量a:"+result());
</script>
//4.闭包的用途
一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
//5.闭包的使用注意点
1) 由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性
能问题,在 IE 中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
2) 闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包
当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随
便改变父函数内部变量的值。
/*------------------------------------第三章 JavaScript面向对象实现---------------------------------*/
//1.面向对象三大特征
1. 封装
2. 继承
3. 多态
详情:http://blog.csdn.net/hbsxjs/article/details/54988484
//2.JavaScript自定义对象
创建对象方式:
// 方式一:对象初始化器方式
<script>
//创建对象方式:方式一
var marry = {
name : "marry",
age : 2,
shout : function() {
alert("我是:" + this.name + ",年龄:" + this.age);
},
action : function() {
alert("会吃");
}
};
alert(marry.name);
alert(marry.age);
marry.action();
marry.shout();
</script>
// 方式二:构造函数方式
<script>
function Dog(name,age){
this.name = name;
this.age = age;
this.shout=function(){
alert("我是:" + this.name + ",年龄:" + this.age);
};
this.action=function(){
alert("会吃");
};
}
var jack = new Dog("jack",1);
jack.shout();
jack.action();
</script>
对象属性定义: 私有属性;
对象属性; 类属性;
对象方法定义: 私有方法;
对象方法; 类方法;
<script>
function C(){
this.objPro1="对象属性1";
C.prototype.objPro2="对象属性2";//也可以用原型定义对象属性
var privatePro="私有属性";
}
C.classPro="类属性";
alert(C.classPro);
var c = new C();
alert(c.objPro1);
alert(c.objPro2);
</script>
//3.JavaScript实现封装特性
<script>
function C(){
var privateFunc=function(){
alert("私有方法");
};
privateFunc();//如果先弹出"私有方法",证明私有方法是在new的时候内部调用的
this.objFunc=function(){
alert("对象方法");
};
C.prototype.objFunc2=function(){
alert("对象方法2");
};
}
C.classFunc=function(){
alert("类方法");
};
C.classFunc();//类方法直接用类名调用
var c = new C();
c.objFunc();
c.objFunc2();
</script>
//4.JavaScript实现继承特性
Apply() 实现属性和方法的继承:
<script>
function Animal(name,age){
this.name = name;
this.age = age;
this.shout=function(){
alert("我是:" + this.name + ",年龄:" + this.age);
};
this.action=function(){
alert("会吃");
};
}
function Dog(name,age){
Animal.apply(this,[name,age]);//相当于克隆了Animal的属性、方法给Dog用
}
var jack = new Dog("jack",1);
alert(jack.name);
alert(jack.age);
jack.shout();
jack.action();
</script>
Prototype 实现原型的继承;
//5.JavaScript实现多态特性
http://blog.csdn.net/likendsl/article/details/53582320
阅读全文
0 0
- Javascript笔记(高级)
- javascript零碎笔记(高级)
- JavaScript高级程序设计(笔记)
- 《JavaScript高级程序设计》学习笔记(语句)
- 《JavaScript高级程序设计》学习笔记(BOM1)
- 《JavaScript高级程序设计》学习笔记(BOM2)
- 《JavaScript高级程序设计》学习笔记(DOM1)
- 《JavaScript高级程序设计》学习笔记(DOM2)
- 《JavaScript高级程序设计》学习笔记(函数)
- 《JavaScript高级程序设计》学习笔记(继承)
- 《JavaScript高级程序设计》学习笔记(DOM2)
- 《JavaScript高级程序设计》学习笔记(拖放)
- javascript 高级程序设计笔记(一)
- javascript高级程序设计笔记(二)
- javascript高级程序设计笔记(三)
- javascript高级程序设计笔记(四)
- javascript 高级程序设计笔记(五)
- javascript高级程序设计笔记(六)
- 一个治愈JavaScript疲劳的学习计划
- 【教程】html+css零基础入门教程之属性选择器详解(二十八)
- 一个月薪12000的北京程序员的真实生活
- Java垃圾收集基础
- hibernate一对一映射(注解)
- Javascript笔记(高级)
- 数据结构与算法(Java语言描述)--链表-02
- MyBatis学习笔记2_示例
- 闭包函数
- CentOS 6.5 配置IP地址的三种方法
- PHP爬虫最全总结2-phpQuery,PHPcrawer,snoopy框架中文介绍
- 递归求解兔子对数问题
- Python语言入门(七)list集合切片体验Python语法简洁
- document.querySelector以及document.querySelectorAll中的转义符