玩javascript对象和函数,发现这个(可能很常见)

时间:2010-07-20 20:40:20

标签: javascript

好吧,我正在尝试(直接在我的脑海中)所有这些面向对象的javascript可以做的事情,我模拟继承与功能,添加功能的功能(太酷了!),我有一个AHA!时刻。

var myArray = [function(){console.log("im in an array!");}, 2, "fly feet!"];
myArray[0]();

当然,现在我已经做到了,我发现它是一个常见的东西,对某些事情很有用......但我发现了它!

任何人都愿意分享他们的AHA!时刻?

3 个答案:

答案 0 :(得分:2)

当我理解this question的答案时:

  

JavaScript表达式[1 [{}]]究竟是如何解析的?

你的AHA时刻是first-class functions的一个例子。

答案 1 :(得分:1)

我认为我没有AHA时刻。在得知 所有内容 之后,JavaScript中的大部分内容都是对象,我意识到这样的事情是可能的:

console.log("I'm not wearing pants".replace('not ', ''))
// Produces: "I'm wearing pants"

就是这样:

foo = function(operation) {
  operation();
}

pants = function() {
  console.log("I'm not wearing pants!!");
}

foo(pants); // Produces console output of "I'm not wearing pants!!"

答案 2 :(得分:1)

由于函数是JavaScript中的第一类对象,因此您可以在任何使用对象的地方使用它们,包括将它们存储在数组中,甚至可以执行从其他函数返回函数等操作。

function one() {
    alert("one");
    function two() {
        alert("two");
    }
    return two;
}

one()();