寄生构造函数模式 js

 有一点需要说明:首先返回的对象与构造函数或者构造函数的原型属性之间没有关系,也就是说构造函数返回的对象与在构造函数外部创建的对象没有什么不同,为此不能依赖 instanceof 操作符来确定对象类型。

由于存在上述问题,建议在可以使用其他模式的情况下,不要使用这种模式。

function changeArrayToString(){
    var arr = [];
    arr.push.apply(arr,arguments)
    arr.toPipedString = function(){
        return this.join("|");
    }
    return arr;
}
console.log(changeArrayToString("a","b","c"));  // ["a","b","c"]
var values = changeArrayToString("a","b","c");
console.log(values.toPipedString());  //"a|b|c" 
原文地址:https://www.cnblogs.com/cnundefined/p/7112153.html