根据定义,javascript中函数和Object之间有什么实质性区别?

时间:2016-06-29 17:10:02

标签: javascript object-oriented-analysis

当我们在javascript中定义对象和函数时,我们没有看到太多差异。那么他们的任何东西是否与功能不同?

2 个答案:

答案 0 :(得分:-1)

JavaScript中的一个好的经验法则是,您看到的每个对象都以某种方式派生自相同的Object.函数,它们是JavaScript中的对象as seen here。这就是他们看起来相似的原因。

编辑:原始数据类型不是对象。我相信这是唯一的例外。

答案 1 :(得分:-1)

对于初学者来说,Javascript中的几乎所有内容都是一个对象:数组,函数,对象文字,甚至字符串和数字也可以通过'。'临时提升为对象。运算符,虽然它们实际上不是对象。

每个Javascript对象都有内置属性(引用),例如 proto 引用它导致它的独特函数构造函数。

但是函数是非常独特的对象,对于初学者来说,它们拥有一个由简单的运算符调用的代码属性:

function a(){ console.log("hello") }
a();

它们有一个范围对象引用,它包含所有父元素变量,允许关闭:

function a(){ 
    var c = 1;
    return function b(){
        console.log("i have access to my father's vars" + c);
    }
}
var c = a();

他们有能力创建执行上下文,您可以在这里阅读:

http://davidshariff.com/blog/what-is-the-execution-context-in-javascript/

并且通常具有许多其他对象没有的独特内置功能。 最后,您可以通过typeof运算符将对象文字与函数区分开来:

typeof function(){} //function
typeof {} //object