5.1 寄生构造函数模式
- function Person(name) {
- var o = new Object();
- o.name = name;
- o.getName = function () {
- console.log(this.name);
- };
- return o;
- }
- var person1 = new Person('kevin');
- console.log(person1 instanceof Person) // false
- console.log(person1 instanceof Object) // true
寄生构造函数模式,我小我认为应当如许读: 寄生-构造函数-模式,也就是说寄生在构造函数的一种办法。
如许办法可以在间谍作况下应用。比如我们想创建一个具有额外办法的特别数组,然则又不想直接修改Array构造函数,我们可以如许写:
- function SpecialArray() {
- var values = new Array();
- for (var i = 0, len = arguments.length; i < len; i++) {
- values.push(arguments[i]);
- }
- values.toPipedString = function () {
- return this.join("|");
- };
- return values;
- }
- var colors = new SpecialArray('red', 'blue', 'green');
- var colors2 = SpecialArray('red2', 'blue2', 'green2');
- console.log(colors);
- console.log(colors.toPipedString()); // red|blue|green
- console.log(colors2);
- console.log(colors2.toPipedString()); // red2|blue2|green2
你会发明,其实所谓的寄生构造函数模式就是比工厂模式在创建对象的时刻,多应用了一个new,实际上两者的结不雅是一样的。
在可以应用其他模式的情况下,不要应用这种模式。
然则值得一提的是,膳绫擎例子中的轮回:
推荐阅读
【引自熊建刚的博客】媒介如不雅你已经对JavaScript异步有必定懂得,或者已经浏览过本系列的其他两篇文┞仿,那请持续浏览下一末节,若你还有困惑或者想懂得JavaScript异步机制与编程,可>>>详细阅读
本文标题:JavaScript深入之创建对象的多种方式以及优缺点
地址:http://www.17bianji.com/lsqh/35175.html
1/2 1