- 预解析
Var num;
Function fun(){
Console.log(“中国我爱你”);
}
Console.log(num);
//打印出 undefinded
//预解析:在任何作用域代码开始之前,系统会将所有的变量声明,
//提至作用域的最前面
- 函数的声明方式
- 内置构造函数的方法
Function fun1(){
Console.log(“利用内置构造函数声明”);
}
Fun1();
- 使用函数表达式声明
//在对象中 声明函数
Var fun2=function(){
Console.log(“利用函数表带是声明”);
}
Fun2();
- 匿名函数
(
Function(){
Console.log(“匿名函数声明”);
}
)();
- 对象中this关键
// 优化,封装成为一个函数,用来将重复的代码,变成一个函数方法
var fun = function () {
console.log('大家好,我是'+this.name);
}
// this关键字
// this关键字并不是写死的数据
// 谁调用,那么this就会指向谁
var dou = new Object();
dou.name = '豆蔻33';
// dou.sayHi = function () {
// console.log('大家好,我是'+dou.name);
// }
dou.sayHi = fun;
var wei = new Object();
wei.name = '俊伟33';
// wei.sayHi = function () {
// console.log('大家好,我是'+wei.name);
// }
wei.sayHi = fun;
var yi = new Object();
yi.name = '廖益33';
// yi.sayHi = function () {
// console.log('大家好,我是'+yi.name);
// }
yi.sayHi = fun;
dou.sayHi();// this就指向了dou
wei.sayHi();// this就指向了wei
yi.sayHi();// this就指向了yi
- 工厂模式
//工厂模式-----批量创建一批相同格式的对象
Function fun(){
Console.log(‘大家好,我是’+this.name);
}
Function getStu(name){
Var stu=new Object();
//先创建一个空对象
Stu.name=name;
Stu.say=fun;
Return stu;
//创建好的对象必须返回去
}
Var do=getStu(“可爱的宝宝”);
Do.say();
- new关键字创建对象
Function getstu(name){
This.name=name;
This.say=function(){
Console.log(“大家好,我是”+this.name);
}
}
Var we=new getstu(“可爱的宝宝”);
//总结 new关键字到底做了什么
//1.new 已经声明了一个空的对象,不需要你手动的声明一个空对象
//2.让this关键字,指向创建好的对象
//3.将传入的参数赋值给这个对象
//4.new帮你将创建好的对象,返回出来,不需要手动写return 返回语句
- 使用字面量声明对象
//对象的字面量是:{}
Var obj={
Name:’可可爱的宝宝’,
Age:0,
Say:function(){
Console.log(“大家好,我是”+this.name);
}
};
Obj.say();
七,对象遍历方法
var wei = {
name: '陈俊伟',
age: 75,
sayHi: function () {
console.log('大家好,我是'+this.name);
}
}
console.log(wei);
console.log(wei.name);
console.log(wei['name']);
console.log(wei['age']);
// 对象的遍历
// forin方法
/*
for(var key in 对象名) {
console.log(对象名[key]);
}
*/
for(var key in wei) {
// key:关键字,对象中的属性名以及函数名
// 根据key值来遍历对象的内容
console.log(key+':'+wei[key]);
}