1.引入
1.1Function是基于原型的对象
2.创建Function对象
2.1 var myFun = new Function("参数一","参数二","alert(参数一+参数二);");
3.Function对象的属性
3.1 length:得出方法参数的个数
4.Function对象的方法
4.1 toString():打印出方法的源码
4.2 valueOf():(作用同toString)
1.变量的作用域
1.1局部变量
1.2全局变量(声明在外边或不用var来声明的变量)
2.外部读取方法内部的局部(私有)变量
function a(){ var b = "cc";
}
alert(b);//报错:提示b未定义
解决方案
function a(){
var b = "cc";
function d(){
alert(b);
}
return d;
}
var result = a();
result();
一、创建对象
1.1初始化器
var any={
name:"some",
age:10,
action:function(){
alert(this.name+":"+this.age);
}
};
1.2构造方法
function some(name,age){this.name=name;this.age=age;this.action=function(){
alert(this.name+":"+this.age);
}
}var aa = new some("bb",5);
aa.action();
1.3属性
function C(){
this.objPro = "对象属性";
C.prototype.objPro2="对象属性2";
var privateObj = "私有属性";
}
C.classPro = "类属性";
1.4对象方法
function C(){
var privateFun = function(){
alert("私有方法");
}
this.objFun = function(){
alert("对象方法");
}
this.prototype.objFun = function(){
alert("对象方法");
}
}
C.classFun = function(){
alert("类方法");
}
二、封装
var any={
name:"some",
age:10,
action:function(){
alert(this.name+":"+this.age);
}
};
三、继承
3.1Dog还是Dog
function Animal(name,age){
}function Dog(name,age){
Animal.apply(this,[name,age]);
}
3.2Dog变成Animal了
function Animal(name,age){
}function Dog(name,age){
Animal.apply(this,[name,age]);
}
Dog.prototype=new Animal();
四、多态
function Animal(name,age){
this.say=function(){}
}
function Dog(name,age){
this.say=function(){}
}
Dog.prototype = new Animal();
function Cat(name,age){
this.say=function(){}
}
Cat.prototype = new Animal();
function say(){
if(animal instanceof Animal){
animal.say();
}
}