JavaScript_函数详解

本文详细介绍了JavaScript中函数的声明与方法的区别、如何在函数对象上添加属性、for循环与with语句的用法、函数定义的解析过程、new操作符的使用规则以及对象prototype属性的应用。通过实例演示,帮助开发者深入了解JavaScript核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.函数名show和函数方法show()的使用区别 

function show()//为声明式,定义代码先于函数执行代码被解析   
{
 alert("xxxxxxx");
}
var x=show//理解:function就是一个对象,而show就是show函数对象的地址,而x=show即接收的是shou()的地址
var x=show()//接收的是show方法的返回值

故定义变量 var show;后,不能再其后使用show()方法,因为指向show()方法的show值已经发生改变!!!因此,不要使用和函数同名的变量

2.添加函数对象的属性 

/*
Strawberry2013-5-9
*/
function Person()
{
 alert("wowo");
}
var p = new Person(); //new 一个Person()函数,理解:该函数对象内部代码遍历一遍,返回该new对象的地址
p.name="zhangsan";  //在该地址封装的对象中加入属性
p.age=30;
p.mai = function()  //在该地址封装的对象中加入函数,该属性得到的是匿名函数的地址
{
 alert("maidongxi");
}
p.mai();

/*
Strawberry2013-5-9
*/
function Person(name, age)
{
 var id = age;  //私有成员
 this.name = name; //公有成员
 this.age = age;
 this.getName = function()
 {
  return this.name;
 }
}
function getMax(array)
{
 //获得最大值语句
 return max;
}
var p = new Person("zhangsan", 30); //new一个对象Person,返回地址p,将该地址对应的属性赋值
p.getMax = getMax;     //使p对象具有getMax()函数功能,但Person不具有
alert(p["name"]+".111.."+p.age); //p["name"]可以理解为p为数组,在该数组中存在一个别名为name,返回name对应的值
alert("NAME:"+p.getName()+p.getMax());

3.for语句和with语句的用法 

for(s in p) //s为遍历p的一个属性,由于p的属性集的类型不确定,不用定义
{
 alert(s+":"+p[s]); //返回p[s]值
}
var arr=[3,5,8];
for(s in arr)   //可以理解属性s为数组的下标
{
 alert(arr[s]);
}
with(p)     //凡在代码中较多的使用了点号(.),可以使用with语句,来简化手写
{
 alert(name+"....."+age);
}

4.不同定义函数方法的解析过程

function show()// 声明式,定义代码先于函数执行代码被解析   
{
 alert("11111");
}
show();
function show()
{
 alert("22222");
}
show();

执行结果为两行的22222!理解:将声明式看着系统的公有对象属性,要先被解析的~~动态式则不同

var t1 = function() // 动态函数,在函数运行中进行动态解析 
{  
    alert("11111");  
};
t1();
var t1 = function()
{  
    alert("11111");  
};
t1();

执行结果为一行的11111和一行的22222~!在函数运行中进行动态解析

5.关于new操作符的使用规则

function Person(name, age)
{
 this.name = name;
 this.age = age;
}
var p = new Person("张三", 20);

JavaScript是一门基于原型的语言,但它却拥有一个 new 操作符使得其看起来像一门经典的面对对象语言。JavaScript中的数组并不象Java中的数组那样工作的,使用类似Java的语法只会让你糊涂。不要使用 new Number, new String, 或者 new Boolean,不要使用 new Function 去创建函数对象,用函数表达式更好。
原则很简单: 唯一应该要用到new操作符的地方就是调用一个构造器函数的时候。当调用一个构造器函数的时候,使用new的。

6.关于对象的prototype属性应用

function getMAX()
{
 var temp = this[0]; //注意this的用法
 for(var i=0; i<this.length; i++)
  {
  if(this[i] > temp)
  temp = this[i];
 }
 return temp;
}
Array.prototype.getMax = getMAX;//将定义的函数地址值,附加给Array的prototype,使Array也具有该函数功能
var arr = [2, 4,1, 8, 3];
alert(arr.getMax());   //8


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值