JavaScript的学习-函数、对象、方法、变量和类

JavaScript-函数、对象、方法、变量和类

 一、函数与对象的关系

当我们定义一个函数时,系统会创建一个对象,该对象是Function实例。

如下代码:

<script type="text/javascript">
	//定义一个匿名函数,并将它赋值给变量hello
	var hello = function(name)
	{
		alert(name + "您好!");	
	}
	//判断该匿名函数是否为Function实例,是否为Object实例
	//可用instanceof运算符判断
	if((hello instanceof Function) && (hello instanceof Object))
	{
		alert("hello是Function对象,同时也是Object对象!");
	}
	else
	{
		alert("hello啥也不是...");	
	}
	//若没有参数,则直接输出函数的源代码
	alert(hello);
</script>

运行后:

二、函数与方法的关系

当我们定义一个函数时,若将该函数附加给某个对象,即可成为该对象的方法。

如下代码:

<script type="text/javascript">
	//定义一个函数,该函数也是一个类
	function Person(name,age)
	{
		//将参数name的值赋给实例属性name-注意区别
		this.name = name;
		//将参数name的值赋给实例属性name-注意区别
		this.age = age;
		//使用匿名函数定义一个名为info的方法
		this.info = function()
		{
			document.writeln("我今年" + this.age + "岁,是一个名叫" + name + "的大猪蹄子!" );	
		}	
	}
	//创建一个对象,传入name和age参数
	var myPer = new Person('老玄武',21);
	//执行info方法
	myPer.info();
</script>

运行后:

需要注意的是,如果没有明确指定将函数附加到哪个对象上,该函数将附加到window对象上,作为该对象的方法。

三、函数与变量的关系

当我们定义一个函数时,同时会得到一个变量。

如下代码:

<script type="text/javascript">
	//定义一个函数,默认对象为window对象
	function hello(name)
	{
		document.write(name + "您好!");
	}
	//访问hello,直接输出源代码
	alert(hello);
	//对hello变量赋值,相当于把hello函数(也是变量)重新赋值了
	hello = "大猪蹄子";
	//此时的hello已不再是一个函数,而是一个普通变量,若传入参数,则报错
	hello("猪头焖子");
</script>

因此,在定义变量、函数时尽量不要重名,否则会出现变量覆盖函数的情形。

四、函数与类的关系

当我们定义一个函数时,同时会得到一个与函数同名的类,该函数也是该类唯一的构造器。

因此在定义一个函数后,有以下两种方式调用函数:

       1.直接调用函数:总是返回该函数内部最后一条return语句的返回值,若无return语句,则没有任何返回值。

       2.使用new关键字调用函数:总有一个返回值,返回值为一个JavaScript对象

如下代码:

<script type="text/javascript">
	//定义一个函数,该函数也是一个类
	function test(name)
	{
		return "你好,我是" + name;	
	}
	
	//直接调用函数
	var rval = test("一号选手");
	//使用new关键字调用函数
	var obj = new test("二号选手");
	
	alert(rval + "\n" + obj);
	
</script>

运行后:

 

day 2018.11.08
整理自《疯狂HTML+CSS+JavaScript讲义第二版》
邮箱:707904142@qq.com

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值