关于javascript:JavaScript四对象和函数

7次阅读

共计 1693 个字符,预计需要花费 5 分钟才能阅读完成。

(一)对象

对象的简介

对象:属于一种复合数据类型,在对象中能够保留多个不同数据类型的属性

对象的分类:
1、内建对象:由 ES 规范中定义的对象
例如:Math String Number Boolean Function Object…..
2、宿主对象:由 JS 的运行环境提供的对象,次要指浏览器提供的对象
例如:BOM DOM
3、自定义对象:由开发人员本人创立的对象

对象的基本操作
// 应用构造函数来创建对象的函数
var obj = new Object();
// 向对象增加属性  对象. 属性名 = 属性值
obj.name = "迷人软";
obj.gender = "女";
obj.age = 16;

// 批改对象的属性值
obj.name = "tom";

// 删除对象属性  delete  对象. 属性名
delete obj.name;
属性名和属性值

1、如果要应用非凡的属性名,须要采纳另一种形式:

 // 对象["属性名"] = 属性值;
 obj.["123"] = 111;

2、属性值:能够是任意的数据类型,甚至是一个对象

根本和援用数据类型

根本数据类型 的值间接在栈内存中存储,值与值之间是独立存在,批改一个变量不会影响其它的变量;

对象 是保留到堆内存中,每创立一个新的对象,就会在堆内存中开拓一个新的空间,而变量保留的是对象的内存地址,如果两个变量保留的是同一个对象援用,当通过一个变量批改属性时,另一个也会被影响

对象字面量
// 语法:{属性名: 属性值, 属性名: 属性值....}
var obj = {
       name:"迷人软",
       age:18,
       gender:"男"
     };
枚举对象中的属性

应用 for...in 语句

var obj = {
       name:"迷人软",
       age:18,
       gender:"男"
     };
for(var n in obj){console.log("属性名:"+n);
      console.log("属性值:"+obj[n]);
}

(二)函数

函数的返回值return

1、能够应用 return 来设置函数的返回值;
2、return后的值会作为函数的执行后果返回;
3、函数中 return 后的语句不会执行;
4、如果 return 后不跟任何值或者函数中不写return,则返回undefined
5、返回值能够是任意数据类型,能够是对象,也能够是函数

立刻执行函数

函数定义完,立刻被调用,往往只会执行一次

(function(a,b){console.log(a);
      console.log(b);
})(123,456); 
//123
//456
作用域Scope

在 JS 中有两种作用域:全局作用域和函数作用域

全局作用域:
1、间接编写在 script 标签中的 JS 代码,都在全局作用域;
2、全局作用域在页面关上时创立,页面敞开时销毁;
3、全局作用域中有一个全局对象 window,能够间接应用;
4、创立的对象都会作为window 对象的属性保留,创立的函数都会作为 window 对象的办法保留;

函数作用域:
1、调用函数时创立函数作用域,函数执行结束后,函数作用域销毁;
2、每调用一次函数会创立一个新的函数作用域,它们之间互相独立;
3、在函数作用域中能够拜访全局作用域的变量;
4、在全局作用域中无法访问函数作用域中的变量;
5、在函数中,不实用 var 申明的变量都会变成全局变量;

this

依据函数的调用形式不同,this会指向不同的对象:
1、以函数模式调用时,this永远是 window
2、以办法的模式调用时,this 就是调用办法的那个对象;

构造函数

构造函数和一般函数的区别就是调用形式不同,一般函数是间接调用,而构造函数须要应用 new 关键字来调用。

构造函数的执行流程:
1、立刻创立一个新的对象;
2、将新建的对象设置为函数中的 this,在构造函数中能够应用this 来援用新建的对象;
3、逐行执行函数中的代码;
4、将新建的对象作为返回值返回

应用 instanceof 能够查看一个对象是否是一个类的实例

原型对象prototype

原型对象相当于一个公共的区域,所有同一个类的实例都能够拜访到这个原型对象,咱们能够将对象中共有的内容对立设置到原型对象中。

垃圾回收(GC)

当一个对象没有任何的变量或属性对它进行援用,咱们将无奈操作该对象。这称之为垃圾。

正文完
 0