//定义一个函数getName
var getName = function(){
return "chaiMaoMao";
}
//由于一切皆对象,故getName也为对象,故可以给它添加属性,属性可以是任何类型
getName.value = "lalala";
getName.toString = function(){
//……
}//通过构造函数创建对象
var person = new Person();//使用JSON创建对象
var person = {
name : "chaiMaoMao",
age : 12
}
//JSON创建对象是一种语法糖,该过程相当于
var person = new Object();
person.name = "chaiMaoMao";
person.age = 12;//创建数组
var array = [1,2,3,4];
//该过程实则为:
var array = new Array(1,2,3,4);//定义一个数字
var a = 3;
//该过程实则为:
var a = new Number(3);//定义一个函数
var getName = function(){
//……
}
//该过程实则为:
var getName = new Function();由此可见,所有对象都是由函数创建的!
//定义一个函数Person(属性值存储在函数中)
var Person = function(){
//……
}
Person.name = "chaimm";
Person.getName = function(){
//……
}
//访问函数中的属性
var p = new Person();
p.name;
p.getName();//定义一个函数Perosn(属性值存储在函数的prototype属性中)
var Person = function(){
//……
}
Person.prototype.name = "chaimm";
Person.prototype.getName = function(){
//……
}
//访问函数prototype中的属性
var p = new Person();
p.name;
p.getName();由此可见,访问存储在函数prototype中的属性和访问存储在函数中的属性的方式是一样的。 虽然访问方式一样,但两者存在巨大的差别。
var p = new Object();var p = new Person();