WEB开发网
开发学院网页设计JavaScript 观察者模式—使用JavaScript实现 阅读

观察者模式—使用JavaScript实现

 2010-09-14 13:23:45 来源:WEB开发网   
核心提示: 如果你在一个对象的prototype属性上添加一个方法,那么,观察者模式—使用JavaScript实现(2),所有通过该对象的构造函数创建的实例都具有这个新方法,注意,因此,当 主题对象 改变了其状态,prototype 本身也是一个对象,而且能够通过 对象文字语法(object lite

如果你在一个对象的prototype属性上添加一个方法,那么,所有通过该对象的构造函数创建的实例都具有这个新方法。注意,prototype 本身也是一个对象,而且能够通过 对象文字语法(object literal syntax) 来为它定义属性和方法:

function NewObject()
{
  alert("I am a new object.");
}
  
NewObject.prototype =
{
  alert1 : function(str){alert(str);}, //新方法
  name : 'As you want', //新属性
  Alert2 : function(){alert('Bye.');}, //新方法
};
var newObject = new NewObject();
newObject.alert1("Ciao");
newObject.name;
newObject.alert2();

脚本每次尝试读/写对象的属性的时候,JavaScript会按照特定的顺序来搜寻和指定名称匹配的属性。顺序如下:

l     如果该属性已经分配给当前对象,则使用该属性的值;

l     如果在当前对象中没有搜索到指定的属性,则检查该对象构造函数的prototype属性的值;

l     沿着prototype链一直查找,直到找到匹配的属性(已经为它赋值),否则,一直会查找到 Object 对象。因此,如果你改变了构造函数的prototype属性的值,并且没有在构造函数的某个实例中重写属性的值,JavaScript会返回对象当前prototype属性的值。

观察者模式类图

观察者模式 定义了一个 主题对象 和若干 观察者对象之间的 “一对多”的依赖。因此,当 主题对象 改变了其状态,所有的 观察者对象 都会被通知并且自动更新。

观察者模式—使用JavaScript实现

上一页  1 2 3 4 5 6  下一页

Tags:观察者 模式 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接