JavaScript中的方法
1.方法
对象的属性值可以是任何的数据类型,也可以是函数。 如果一个函数作为一个对象的属性保存,那么成这个函数是这个对象的方法。
var obj =new Object();
obj.name = "xiaoxiao";
obj.sayName = function(){
console.log(obj.name);
}
枚举对象中的属性
语法: for ... in 语句
for(var 变量 in 语句){
}
for(var n in obj){
console.log(obj[n]);
}
2.作用域
-
在JS一共有两种作用域
1.全局作用域 -直接编写在script标签中的JS代码 -全局作用在页面打开时创建,关闭时销毁 -在全局作用域中有一个全局对象window,代表浏览器的窗口,可以直接使用 -在全局作用域中,创建的变量都会作为window对象的属性保存。 -创建的函数都会作为window的方法。 2.函数作用域 -调用函数时创建函数作用域,函数执行完毕后,函数作用域销毁。 -每调用一次函数,就会创建一个新的函数作用域,之间相互独立。 -函数域操作一个变量时,会先在自身作用域中寻找,如果有直接使用,没有则向上一级作用域寻找,直至找到全局作用域,如果全局作用域没有,则会报错。 -函数作用域如果调用全局的变量,可以使用window.变量。 -在函数中,不使用var声明的变量都会成为全局变量。
3.变量的声明提前
-
使用var关键字声明的变量,会在所有的代码执行之前被声明。
-
但是如果声明变量时不使用var关键字,则变量不会被声明提前。
4.函数的声明提前
-
使用函数声明形式创建的函数,function(){},它在所有的代码执行之前就被创建, 可以在声明前来调用函数
-
使用函数表达式创建的函数,不会被声明提前,所以不能再声明之前调用。
5. this
-
解析器在调用函数每次都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象。
1.以函数的形式调用时,this就是window 2.以方法的形式调用时,this就是调用方法的那个对象
6. 构造函数
function Person(){
}
var per = new Person();
构造函数的执行流程:
1.立即创建一个新的对象
2.将新建的对象设置为函数中this
3.执行函数中的代码
4.将新的对象作为返回值返回