工厂模式与构造函数模式(js学习)

来源:互联网 发布:电脑机器码修改软件 编辑:程序博客网 时间:2024/05/21 14:06

1.工厂模式:

function createPerson(name,age){var o = new Object();o.name = name;o.age = age;o.sayName = function(){  alert(this.name);  };  return 0;}var person1 = createPerson("n",12);var person2 = createPerson("b",19);

2.构造函数模式

function Person(name,age){this.name = name;this.age = age;this.sayName = function(){  alert(this.name); };}var person1 = new Person("n",12);var person2 = new Person("b",19);

调用构造函数4步曲
(1)创建一个新函数
(2)将构造函数作用域赋给新对象(因此this就指向了这个新对象)
(3)执行构造函数中的代码(为这个新对象添加属性)
(4)返回新对象

这两个新对像都有一个constructor(构造函数)属性,该属性指向Person

alert(person1.consructor==Person);//truealert(person2.consructor==Person);//true

构造函数和普通函数没有区别,只是它通过new调用了!

构造函数使用

//当作构造函数使用var person = new Person("n",12);person.sayName();//"n"//当作普通函数调用Person("n",12);//添加到windowwidow.sayName();//"n"//在另一个对象的作用域中调用var o = new Object();Person.call(o,"n",12);//call()扩充对象作用域o.sayName();//"n"
0 0
原创粉丝点击