004 对象和函数

对象的分类

内建对象:在ES标准中定义的对象,在任何ES实现中都可以使用。比如:Math,String,Number,…

宿主对象:由JS运行环境提供的对象,主要指浏览器提供的对象。例如:BOM,DOM

自定义对象:开发人员自行定义。

对象的基本操作

(对了,提醒一下,console.log();需要浏览器打开开发者选项里面查看)
var obj=new Object();
//添加对象的属性
obj.name=“添加name属性”;
obj.age=18;
obj[“sex”]=“男”;
//读取对象的属性(如果读取的属性不存在返回Undefined)(属性可以是任意类型,也可以是Object)
console.log(obj.name);
console.log(obj.age);
console.log(obj[“sex”]);
var str1=“sex”;
console.log(obj[str1]);
//修改属性值
obj.age=100;
//删除属性
delete obj.age;
//属性名不强制要求遵守规范

//检查对象中是否有指定属性:语法:“属性名” in 对象名
console.log(“score” in obj);

//引用数据类型Object
//原理:new会创建堆空间
//案例
var a=1;
var b=a;
console.log(b);
a++;
console.log(b);

var obj1=new Object();
obj1.name=“123”;
var obj2=obj1;
console.log(obj2);
obj1.name=“234”;
console.log(obj2);
// obj1=null;
// console.log(“null后还有吗”+obj2);

//两个对象比较的是他们的内存地址,如果obj2和obj3指向同一个对象,返回true
var obj3=obj1;
console.log(obj2 === obj3);
var obj3=obj2;
console.log(obj2 === obj3);

//对象字面量
//使用对象字面量创建对象
var obj4={};
console.log(obj4);
var obj5={
name:“obj5”,//如果键使用特殊符号,需要加引号
age:18,
};
console.log(obj5);

函数

函数也是一个对象
var fun = new Function();
fun.name="first fun";
console.log(fun.name);//已经不能用了
创建函数:

var fun = new Function();
console.log(typeof fun);
可以将封装的代码以字符串的形式传递给构造函数
var fun = new Function(“console.log(‘传入函数中的代码’);”);

使用函数声明创建函数(常用)
function 函数名([形参1,形参2,…]){
console.log(“使用函数声明创建的函数”);
}

使用函数表达式创建函数
var 函数名=function([1,2,…]){
console.log(“创建一个匿名函数,然后赋值给变量”);
}//匿名函数

调用函数:

fun();
调用函数时,函数中封装的代码会按照顺序执行

函数参数:fun4

参数返回值:fun5
返回值可以是任意数据类型

立即执行函数:函数对象
(function(){
alert(“函数对象,会立即执行”);
})();

方法

函数也可以作为对象的属性,我们称此函数为该对象的方法。
var name=“对象的方法”;
obj.setName=function(name){
obj.name=name;
}

实用案例:枚举对象中的属性

使用for … in 语句
语法:
for(var n in obj){
console.log(“属性名:”+n+",属性值:"+obj[n]);//因为n是变量
}

作用域

全局作用域:
页面打开时创建,关闭时销毁
有一个全局对象window,可以直接使用,创建的变量都会作为window对象的属性保存
变量声明提前:var声明的变量,会在所有代码执行前被声明,非var声明的变量,不会被提前声明
函数声明提前:function 函数(){}会在所有代码执行前被创建,使用函数表达式创建的函数var fun=function(){}不会被提前声明
声明的变量都是全局变量

函数作用域:
调用函数时创建函数作用域,函数执行完毕销毁
在函数作用域中可以访问到全局变量,可以使用window对象使用
声明的特性var声明,会代码执行前声明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值