如下两个普通对象
可以不考虑执行环境的兼容性,实现如下要求:
- 执行 a.methodA() 输出 1
- 执行 a.methodB() 输出 2
- 执行 b.bar=3; a,method() 输出 3
var a = {
foo:1,
methodA:function(){
alert(this.foo);
}
};
var b = {
bar:2,
methodB:function(){
alert(this.bar);
}
};
a.methodA();
a.methodB = function(){
b.methodB();
}
a.methodB();
b.bar=3;
a.method = function(){
alert(b.bar);
}
a.method();
// 另外一种方法
var a = {
foo:1,
methodA:function(){
alert(this.foo);
}
};
var b = {
bar:2,
methodB:function(){
alert(this.bar);
}
};
a.__proto__ = b;
a.methodA();
a.methodB()
b.bar = 3;
a.method = a.methodB;
a.method();