break、continue和return的区别
1.使用break可以退出当前的循环
2.continue 可以用于跳过当次的循环
3.return 可以结束整个函数
return有两个作用 一个是作为返回值 一个是return后的代码不会执行
立即执行函数
函数定义完,立即被调用,这种函数叫做立即执行函数
立即执行函数往往只会执行一次
(function(){ alert("我是立即执行函数~~~~~~~~") })();
使用工厂创建对象
function createPerson(name,age,sex){
//创建一个新对象
var obj=new Object();
obj.name=name;
obj.age=age;
obj.sex=sex;
obj.sayName=function(){
alert(this.name);
}
//将新的对象返回
return obj;
}
var obj1=createPerson("猪八戒","男",20);
var obj2=createPerson("孙悟空","男",30);
console.log(obj1);
obj1.sayName();
obj2.sayName();
使用工厂方法创建的对象,使用的构造函数都是Object
所以创建的对象都是Object这个类型
就导致我们无法区分出多种不同类型的对象
构造函数
构造函数就是一个普通的函数,创建方式和普通函数没有区别
不同的是 构造函数习惯上首字母大写
构造函数和普通函数的区别就是调用方式的不同
普通函数是直接调用
构造函数需要使用new关键字来调用
构造函数的执行流程
1.立即创建一个新的对象
2.将新建的对象设置为函数中的this,在构造函数中方可以使用this来引用新建的对象
3.逐行执行函数中的代码
4.将新建的对象返回值返回
function Person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.sayName=function(){ alert(this.name) } } var per= new Person("孙悟空",18,"男"); console.log(per.name);
使用 instanceof可以检查一个对象是否是一个类的实例
//语法 对象 instanceof 构造函数 如果是 则返回true,否则返回false console.log(per instanceof Person); 所有对象都是Object的后代 任何对象和Object左instanceof检查时都会返回true console.log(per instanceof Object);
this 的情况 1.当以函数的形式调用时,this是window 2.当以方法的形式调用时,谁调用方法this就是谁 3.当以构造函数的形式调用时,this就是新创建的那个对象