js函数对象
js函数对象
js函数对象一、常用的定义函数的写法
1、声明式的
写法:function func(param1,param2…){…};
2、对象式的(构造函数)
写法:var func =new Function("param1","param2",..."function body");
例子:var sayHi=new Funciton("toWhom","alert('hi'+toWhom)");
3、字面量式
写法:var func=function [函数名可选,函数内可见](parms){...};
例子:var func=function funcTest(id){alert(id)}
说明:这种写法的函数名,只有在函数体内可见,可用于实现递归函数。
二、函数对象
函数的本质是一个内部对象,由JavaScript解释器决定其运行方式。注意可直接在函数声明后面加上括号就表示创建完成后立即进行函数调用,例如:
var i=function (a,b){
return a+b;
}(1,2);
alert(i);
在JavaScript中,函数对象对应的类型是Function,正如数组对象对应的类型是Array,日期对象对应的类型是Date一样,可以通过new Function()来创建一个函数对象,也可以通过function关键字来创建一个对象。
三、几种函数定义的使用比对
1、下面这段语句将产生func未定义的错误
func();
var func=function(){
alert(1)
}
2、但是下面两种方式能够正确调用
func();
function func(){
alert(1)
}
func();
var someFunc=function func(){
alert(1)
}
三、函数对象和其他内部对象
除了函数对象,还有很多内部对象,比如:Object、Array、Date、RegExp、Math、Error。这些名称实际上表示一个类型,可以通过new操作符返回一个对象。然而函数对象和其他对象不同,当用typeof得到一个函数对象的类型时,它仍然会返回字符串“function”,而typeof一个数组对象或其他的对象时,它会返回字符串“object”。
例如
alert(typeof(Function))); // “function”
alert(typeof(new Function())); // “function”
alert(typeof(Array)); // “function”
alert(typeof(Object)); // “function”
alert(typeof(new Array())); // “object”
alert(typeof(new Date())); // “object”
alert(typeof(new Object())); // “object”
可见new一个function实际上是返回一个函数。这与其他的对象有很大的不同。其他的类型Array、Object等都会通过new操作符返回一个普通对象。
- js防抖用法(JavaScript的防抖和节流案例)
- JavaScript 阻止超链接跳转的操作方法(多种写法)(JavaScript 阻止超链接跳转的操作方法多种写法)
- qt和js相互调用(QT与javascript交互数据的实现)
- javascript中window对象
- js数字时钟编程(JavaScript实现动态数字时钟)
- vue走马灯特效(Javascript结合Vue实现对任意迷宫图片的自动寻路)
- 用javascript解析json(JavaScript JSON.stringify的使用总结)
- JavaScript中call、apply、bind实现原理详解(JavaScript中call、apply、bind实现原理详解)
- javascript如何操作文档元素(JavaScript操作元素实例大全)
- javascript 数据分析(利用JavaScript差集实现一个对比小工具)
- js的模块模式设计(如何理解JavaScript模块化)
- JavaScript生成GUID的方法
- javascript制作表格(JavaScript实现动态表格效果)
- javascript怎么判断对象类型(JavaScript对象内置对象,值类型和引用类型讲解)
- javascriptloop教程(JavaScript中的AOP编程的基本实现)
- javascript中的this判定(Javascript中函数分类&this指向的实例详解)
- 买绿宝不能只挑黄绿色 菜农教你3招挑,个个皮薄肉脆,香甜爆汁(买绿宝不能只挑黄绿色)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
热门推荐
- docker镜像无法删除 Error:No such image:xxxxxx解决(docker镜像无法删除 Error:No such image:xxxxxx解决)
- python爬虫第一本书(我用Python抓取了7000 多本电子书案例详解)
- 阿里云服务器安全组在哪(阿里云服务器安全组设置规则)
- python起源详解(Python发展简史 Python来历)
- tomcat部署web项目操作(Tomcat首次部署web项目流程图解)
- mysqldecimal类型数据转换(mysql decimal数据类型转换的实现)
- Js如何判断浏览器类型和版本
- html5定位教学(Html5 webview元素定位工具的实现)
- dedecms栏目列表(dedecms子栏目中调用其顶级栏目名称和简介的方法)
- asp.net func 委托
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9