JavaScript----对象和函数的关系

理解对象中说明了函数是对象,因为可以用 instanceof函数来判断。所以函数是一种对象,但是函数又有特殊的地方。数组是对象的一个子集,属于包含关系,但是对象和函数之间的关系有点复杂,对象和函数的关系类似于鸡生蛋,蛋生鸡的关系。
例子:

function Person(name,age){
    this.name = name,
    this.age = age
}
var person = new Person("asdf",18);
console.log(person);//   Person {age: "asdf", name: 18}

这个例子说明了一点:函数可以创建对象
也许有人就会说:不对!!!。因为

var obj = {
    name = "yfh",
    age = 18,
}
var arr = [10,"t",true]

这样的写法不也是能创建一个对象吗。但其实这只是一种“快捷方式”,又名“语法糖”。以上代码本质为:

    var obj = new Object();
        obj.name = "yfh";
        obj.age = 18;
    var arr = new Array();
        arr[0] = 5;
        arr[1] = "t";
        arr[2] = true;

代码中的Array、Object都为函数,也许还有人不相信,可以检测一下Array和Object的类型。

console.log(typeof (Object));//function
console.log(typeof (Array));//function

这下相信了吧。可以总结对象都是通过函数创建的
现在是不是糊涂了—— 对象是函数创建的,而函数却又是一种对象——天哪!函数和对象到底是什么关系啊?

别着急!揭开这个谜底,还得先去了解一下另一位老朋友——prototype原型。

猜你喜欢

转载自blog.csdn.net/yufanhui/article/details/81226615