请问javscript函数问题?

来源:百度知道 编辑:UC知道 时间:2024/05/06 23:41:50
请问javscript函数问题?

function a(){}

老子这几天看了继承和对象的图,已经昏天晕地

现在有个吐血问题

什么算是函数,是a()名字带个()括号的算函数,还是说a函数名算个函数?

第二个问题:

a()算个对象,还是a算个对象?

函数算个对象吗?

如果函数算个对象为啥a().constructor不行,请详细点.

我在function a(){alert(this==a;}

为什么是false,

书上说this当前对象就是指a函数名对象,为啥不是指a(),为啥是false,应该是true

呵呵,抠门了一点。
在 Javascript 的世界中没有所谓真正的类,只是它的特性可以用来模拟面向对象罢了。

对于函数体:
function a() {}
你既可以把它当一个函数使用,也可以把它当一个类使用,具体的涵义在代码中去体现。
例如:
function Money() {
this.parValue = "100";
this.name = "人民币";
this.toString= function() {
return this.parValue + "元 " + this.name;
};
}
对于上述 Money 这个函数,你就可以把它当成一个类似于 Java 语言中的 class。this 表示 Money 这个类的当前实例对象。 parValue 和 name 是 Money这个类的两个属性。toString 是 Money这个类声明的一个方法。
// 这里构造一个 Money 类的实例 m。
var m = new Money();
// 调用 Money 的实例 m中的 toString 方法(函数)
alert(m.toString()); --> 100元 人民币

而 function Money() { alert("人民币"); } 只是一个函数声明
Money(); 称为函数的调用。它打印出 "人民币"

回答你的第一个问题先,
当有代码 function a() {} 时,称为声明一个函数,或者称声明一个类。
a() 称为函数的调用,new a(); 称为构造一个 a 类的实例。
在 Javascript 的世界中,函数也算是一个对象,因为它可以像对象一样传递。看下面的代码:

function a() {
alert("A");
}