小弟初学Javascript,其中function既可以定义函数又可以用来定义类,而且那类看上去分明就是个函数啊!是现在是把小弟搞糊涂,跟其他OOP语言一点都不一样,要求详细解释下,谢谢。
JS中一切皆对象,对象即函数,一切皆函数……
var A = function() {xxx};
这时A是个函数,可以调用,函数里的this通常指向A所在作用域
A();
如果用了new关键字,A就是个类,函数就是A的构造函数,函数里面的this指向对象本身
var a = new A();
然后就是prototype,这个有很多资料
准确的说应该是用function来模仿类。模仿类中的属性、方法、事件等。
JS中不存在类的概念
js是脚步语言和面向对象语言还是有很大的区别的,要慢慢习惯。建议看看JavaScript高级程序设计。
js虽然是面向对象,却不允许继承,然后是因为是函数式编程,所以很难理解。。。这也是我一直觉得真想学好js并不容易的原因。。。。
函数式编程:js调用函数是函数名+(),不加()是不调用的。。。
然后函数可以作为成员(就是普通OO语言如C#的字段,属性,也可以是方法),这确实很难理解。。。
变量当然也可以是类成员。。。。。。。。
以上是我的一点小感受,我js也不算好,所以就看对楼主有用没有了。呵呵
中function既可以定义函数又可以用来定义类:
function 是函数 这个不用说了,
function 是类:其实就是利用function的作用域 模拟类 例如:
var a =10;
function show(){
var a=100
}
alert(a)//全局的a 输出10;
show()//局部的a 输出100;