我对JS的理解
2015-12-02 19:03
507 查看
函数对象和一般对象的区别?
普通对象是键值对,JAVA中的哈希,没有构造函数概念,此类非彼类为什么要有自调用?
没有类,没有构造函数,函数对象还是应该有初始化过程,自调用可以实现该效果。定义的函数,只有执行了,函数内的局部变量才会申请内存空间。
所以JS函数对象才是真正类似于JAVA 类对象的概念。
而JS中的函数也不同于其他C,JAVA的函数,C, JAVA函数执行完后函数内的变量会清楚。
可以想象的是,JS函数对象中的变量要不像JAVA是分配在堆中,或者有其他持久保存的方式。
不然JS就low了。
http://www.runoob.com/js/js-function-closures.html 演示的闭包则使用了自调用(已贴到下面)
如何知道当前的函数的用法是普通函数还是对象?
http://www.runoob.com/js/js-function-invocation.html函数名前面没有new, 后面带()表示函数调用。比如 var x = func();
函数名前有new
// This creates a new object
var x = new myFunction("John","Doe");
函数名后面用. 表示对象。比如 var txt = func.toString();
还有一种情况是,函数是对象,但是当成函数使用。调用call(), apply()
http://www.runoob.com/js/js-function-invocation.html
闭包是结合了对象和函数,自调用的最好例子
// add是变量,但是JS又声明一切皆对象 JavaScript
中的所有事物都是对象:字符串、数值、数组、函数… http://www.runoob.com/js/js-objects.html
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
add(); // add变量可以作为一个函数使用。
add();
add();
如此一来发现JS的函数太强大了!
而且语法比有类的OO语法更简洁
this与java this的不同?
JS当函数没有被自身的对象调用时, this 的值就会变成全局对象。NodeJs的全局对象 http://www.runoob.com/nodejs/nodejs-global-object.html
相关文章推荐
- js入门(十)——原型
- 关于如何在javascript中实现AOP
- js操作cookie
- js学习笔记 (继续)
- JavaScript使用正则表达
- Javascript算法系列之快速排序(Quicksort)
- javaScript实现修改输入框之后标红
- fastJson和jackson转json的区别
- Java抓取网页数据(原网页+Javascript返回数据)
- 简单实现JS对dom操作封装
- Javascript在线美化,格式化,js美化
- 【js对象属性的getter和setter】
- js到时间时显示
- JavaScript 字符串转日期
- Json 介绍
- 利用java8新特性实现类似javascript callback特性
- Missing artifact net.sf.json-lib:json-lib:jar:2.2.3:compile
- JS折半插入排序算法实例
- 如何动态加载外部Javascript文件
- [JSP]错误信息、错误处理