Javascript真是门非常独特的动态语言,整体设计都是基于作用域链的,就这点它就和与其它语言有巨大的差别,在Javascript中Function即对象,没有像其它语言一样有类和继承的概念,但在ES6中出现的新语法就有class的等OOP风格语法
字面量
// 字面量
var Person = {
name: "freax",
age: 23,
say: function () {
console.info(this.name);
}
};
new 构造函数
var o = new Object();
var array = new Array();
原型
//code
Obejct.create()
继承某个对象的属性和方法
var o1 = Object.create({age:'',sayName: function () { //o1继承age属性和sayName 方法
console.info(this.name);
}});
不继承任何属性和方法,即创建一个空对像
var o2 = Object.create(null);
继承原型,和直接量{},new Object()一样
var o3 = Object.create(Object.prototype);
Object.create 和new 构造函数,{} 不同之处在于Object.create 方法可以继承任意对象