java函数参数是对象_JavaSript函数、函数中的参数、对象

一、函数

函数的作用

函数可以封装任意多条语句,而且在任何时候任何地方调用执行

函数的定义

使用function声明,后跟一组参数以及函数体函数

函数的返回值

任何函数通过return语句,后面跟着返回的值来实现返回值函数会在执行玩return后停止并立即退出

return语句也可以不带任何返回值,用于要提前停止函数执行又不需要任何返回值的情况。

二、函数的参数

ES函数中的参数和其他语言函数中的参数不一样,既不介意函数参数的个数也不介意参数的类型。在定义了两个参数的函数里,可以传递一个、两个或者三个,甚至不传递。这是因为函数传递过来的参数在内部用一个数组来表示、管理,在函数体内通过arguments对象来访问这个数组。

说明:

1、arguments对象只是与数组类似的属性,并不是Array的实例,不能使用数组的方法。

2、[ ]语法访问它的每一个元素。

3、length属性确定传递参数的个数。

arguments应用:求一组数的平均值

function getAvg( )

{ var sum=0,len=argumengs.length

for(i=0;i

{

sum=+arguments[i];

}

return sum/len;

}

var avg=getAvg(1,2,3,4,5,6);

console.log(avg);复制代码

三、对象

对象是什么

对象的作用:简化函数的参数列表,只用传递对象名进去,不用再把所有属性一一传递进去。

现实中的对象:万物皆对象,一切事和物都可以是对象。

对象是一个具体的食物,手机、汽车不是对象,因为是一类食物

对象由特征和行为组成。特征是描述对象的名词,行为是描述对象的动词,对象可以做什么。

JS中的对象:

对象其实就是生活中对象的一个抽象(面向对象编程:对象可以自己创建,有些系统也会提供相应功能,不用写很多代码,很方便)

对象是无序属性的一个集合

其属性可以包含基本值、对象或函数。对象就是一组没有顺序的值。我们可以把JS中的对象想象成键值对,其中值可以是数据或函数。

对象的成员:

特征——属性(名词)

行为——方法(动词)

函数和对象的区别:

函数封装一段代码,通过函数名可以方便重用代码实现的某个功能;

对象封装属性和方法,方便使用对象的成员。

对象的创建方法

字面量创建一个对象

如何创建对象及使用对象的成员

创建对象:

对象可以赋值给一个变量

var dog = {

// 键值对形式,通过键(属性)访问值

name: 'puppy',

type: '中华田园犬',

age: 2,

color: 'yellow',

bask: function(){

console.log(this.name+'旺旺') // this表示当前对象dog,在方法里访问属性,名字是puppy的狗在叫

}

eat: function(){

console.log(this.name+'啃骨头') // 对象的使用和变量是不同的,对象要加this,变量直接使用变量名

}

}复制代码

访问对象里的属性和方法

对象.属性名

console.log(dog.name);复制代码

对象.方法名

dog.bark();

dog.bark();

dog.eat();复制代码

属性的另一种访问方式

console.log(dog['name']);复制代码

函数和方法的区别

函数是  独立存在的 调用:fn( );

方法是  属于对象的 调用:dog.bark( );

2.动态创建一个对象

除了上面的方法,还可以先创建一个空对象,通过 var dog = new Object( ); // 调用构造函数 会在内存中创建一个空对象

再动态创建对象的属性,随时创建成员:

dog.name = 'puppy';

dog.type = '中华田园犬';

dog.attack = function ( ) {

console.log(this.name + '旺旺');

}

复制代码

3.工厂方法创建多个对象

创建多个对象,对象里有很多相同属性,通过工厂方法:

function creatHero(name,weapon,equipment,blood){

var hero = new Object();

//属性

hero.name = name;

hero.weapon = weapon;

hero.eqiupment = eqiupment;

hero.blood = blood;

//方法

hero.attack = function() {

console.log(this.name + ':攻击');

}

hero.run = function() {

console.log(this.name + ':加速跑');

}

return hero;

}复制代码

使用工厂方法创建多个英雄,就是重用创建对象的方法传递参数一次创建多个对象:

var hero1 = creatHero('黄忠','弓箭',['头盔','靴子'],100);

var hero2 = creatHero('刘备','剑',['头盔','盔甲'],100);复制代码

4.自定义构造函数创建多个对象(语义化,与普通函数区分,最简洁)

构造函数使用帕斯卡命名规范,第一个字母大写。

function Hero(name,weapon,equipment,blood){

//this 动态的给对象增加成员

this.name = name;

this.weapon = weapon;

this.eqiupment = eqiupment;

this.blood = blood;

//this 指向当前对象

this.attack = function() {

console.log(this.name + ':攻击');

}

this.run = function() {

console.log(this.name + ':加速跑');

}

}复制代码

使用

var hero1 = new Hero('黄忠','弓箭',['头盔','靴子'],100);

var hero2 = new Hero('刘备','剑',['头盔','盔甲'],100);复制代码

new关键字的执行过程

new 一定要在后面调用构造函数,new做的四件事情

1、在内存中创建一个空的对象

2、让构造函数中的this指向刚刚创建的对象

3、执行构造函数,在构造函数中设置属性和方法或其他事情

4、返回了当前对象(构造函数里不用写return,内部会自动返回到变量里)

this

this出现在

1、方法:

this指向方法所属的对象

2、构造函数中:

this指向构造函数创建的对象

3、函数中(包括构造函数的普通调用  Fn( )  ):

this指向window

遍历和删除对象的属性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值