js高级教程 第六章-面对对象的程序设计(三)

  • 寄生构造函数模式
    封装对象的代码,然后返回新创建的对象。
function Person(name,age,job){
  var o = new Object();
  o.name = name;
  o.age = age;
  o.job = job;
  o.sayName = function(){
    alert(this.name);
  };
  return o;
}

var friend = new Person('zhang',11,"worker");
friend.sayName();//zhang
构造函数在不反悔值的情况下会默认返回对象实例。
function sArray(){
  var values = new Array();
  values.push.apply(values,arguments);
  values.toPipedString = function(){
    return this.join('|');
  }
  return values;
}

var colors = new sArray('red','black','blue');
alert(colors.toPipedString());//red|bluck|blue
  • 稳妥构造函数模式

    所谓稳妥,就是没有公共属性,也不能引用this对象,适合在一些安全环境下使用。


稳妥构造函数与寄生构造函数的不同在于:
1.不能使用this
2.不能使用new调用构造函数
function Person(name,age,job){
  var o = new Object();
  o.sayName = function(){
    alert(name);
  }
  return o;
}

var friend = Person('zhang',11,'student');//no new
friend.sayName();

//除了调用sayNmae,没有别的方法可以访问数据成员
  • 继承
    js只能依靠实现继承,并且依靠原型连实现。
原文地址:https://www.cnblogs.com/comefuture/p/8305949.html