-
Object构造函数模式
var obj = {}; obj.name = 'Tom' obj.setName = function(name){this.name=name}
-
var obj = {}; obj.name = 'Tom' obj.setName = function(name){this.name=name}
-
构造函数模式
function Person(name, age) { this.name = name; this.age = age; this.setName = function(name){this.name=name;}; } new Person('tom', 12);
-
构造函数+原型的组合模式
function Person(name, age) { this.name = name; this.age = age; this.setName = function(name){this.name=name;}; } new Person('tom', 12);
继承模式
-
原型链继承 : 得到方法
function Person(name, age) { this.name = name; this.age = age; this.setName = function(name){this.name=name;}; } new Person('tom', 12);
-
借用构造函数 : 得到属性
function Person(name, age) { this.name = name; this.age = age; this.setName = function(name){this.name=name;}; } new Person('tom', 12);
-
组合
function Parent(xxx){this.xxx = xxx} Parent.prototype.test = function(){}; function Child(xxx,yyy){ Parent.call(this, xxx);//借用构造函数 this.Parent(xxx) } Child.prototype = new Parent(); //得到test() var child = new Child(); //child.xxx为'a', 也有test()
-
new一个对象背后做了些什么?
-
创建一个空对象
-
给对象设置proto, 值为构造函数对象的prototype属性值 this.proto = Fn.prototype
-
-