函数

函数也是对象,所以对象也可以嵌套函数;For in语句可以快速的获得对象中的属性用语法如下图for(var 变量名 in 对象){
}
在这里插入图片描述

用法实例:如果只是想要对象的里面的属性名则值用输出变量名了,如果要知道值就要先对象名[变量名了]如下图:
在这里插入图片描述

函数对象,的创建方法,但凡闯将创建对象想就要用new如下图;
在这里插入图片描述

但在我们开发时不建议使用这种方法,我们建议使用一下这种方法Function 函数名(参数){};
在这里插入图片描述

你在创建函数时没有给函数名,那么这个函数叫做匿名函数,匿名函数是没有意义的;想要让匿名函数变得有意义就必须申明一个变量把匿名函数赋值给他;如下图:
在这里插入图片描述

函数要调用才会执行函数里面的代码块;函数的参数,我们可以在函数后面的()里面进行给与参数,参数与参数之间用逗号隔开,如果只给一个参数赋与实参, 没有对应实参的形参将是未定义,没有任何效果;return他和console.log的效果有点相像,但他们很不一样;他的语法return 值,在函数return后面的值将会作为函数的执行结果返回,即使后面还有代码也不执行;立即执行函数:这中函数定义完后,会立即被调用,但他只会执行一次;他的语法是小阔号匿名函数小括号,如下图:
在这里插入图片描述

如果一个函数作为一个对象的属性保存时,我们则称这个函数是对象的方法;在全局作用域中创建的变量会作为一个window对象的属性保存,全局中函数会做为window对象的方法保存;在我们使用var声明的变量,会在所有代码执行前被声明,但不会赋值,赋值要等到执行到时候才会赋值,如你在第24行声明的的变量,那么你想要赋值就必须等到代码执行到第24行才会赋值;如果不用var则不会提前声明;函数的声明也一样,会在所有代码执行前被声明;但我们有函数表达式创建的函数时不会被提前声明的,所以用函数表达式创建的函数必须先创建在调用;函数作用域:每次调用函数时会创建一个函数作用域,函数执行完后会立即销毁。每次调用所创建的函数作用域都是新的,独立的。在函数作用域中可以访问全局作用域的变量,但全局作用域不能访问函数作用域;但函数调用时会先在自身的作用域中查找,如果没有找到,则会在他的上一级(如嵌套的父元素)中查找知道全局作用域,在函数中我们可以用window对象来访问全局变量;This:在我们调用函数时会向函数内部传递一个隐形的值this;当函数以方法的形式被调用是,我们的this指向的是调用方法的那个对象,如果是以函数的形式进行调用时则永久的指向window;构造函数:构造函数的创建方式一样,不同的是构造函数习惯上首字母大写构造函数的调用方法不同,普通函数就是方法名()构造函数则要关键字new来调用如下图
在这里插入图片描述

当构造函数在执行时,会立刻创建一个新的对象,并会把新创建的对象设置给函数中的this(前面有说this指向那个),在构造函数照中可使用this来引用新建的对象使用同一个构造函数创建的对象,我们成为一类,我们将通过一个构造函数创建的对象,称为该类的实例;Instanceof他是用来实例是不是这个类(构造函数),是则返回true不是则返回false如果在构造函数中再定义一个方法的话,你每创建一个该构造函数的实例,那么都会创建这个方法着会导致内存的浪费,解决的方法是把这个方法变成构造函数中对象的一个属性(就是在外面在单独当一个方法,让构造函数里面的属性接受)如下图:
在这里插入图片描述

这个方法也有一个问题就是,如果下面有函数名相同的,那么会被下面的函数覆盖掉;Prototype原形我们每创建一个函数,解析器都会对函数中添加这个属性prototype这个属性对应着一个对象,这个对象叫做原型对象,普通函数调用prototype没有任何一个效果;如果函数以构造函数的形式形式进行调用时,他所创建的对象里都会有一个隐藏的属性,指向该构造函数的原型对象我们可以用_proto_来访问该属性,如下图:
在这里插入图片描述

通过某个构造函数所创将出来的实例的原型对象都是同一个,这个构造函数所创建的原型对象是所有实例所共有的,我们可以吧一些共有的属性放在原型对象;使用语法:
在这里插入图片描述

当我们访问对象的一个属性或方法是,他会先在自身中查找,有就直接使是用,如果没有则在原形对象中查找,有就直接使是用;我们在原型对象中添加一个方法,就可已解决前面覆盖的缺点,如下图:
在这里插入图片描述

Hasownproperty这个函数用来检测这个对象自身里面有没有这个属性或方法有则true没则false;用法对象名.Hasownproperty(“name”);如下图:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值