代理有什么作用
- 在使用某对象时多加条件限制,比如说需要达成什么条件才能使用某对象里的方法,这样可以在不修改原对象的前提下 限制或增加 原对象的功能
- 包装某一函数,丰富其功能
- 对象劫持 ( MVVM)
代理原理
这里拿 JOJO 这部番举例。。
JOJO里有一种人叫替身使者,他们能将精神力具化成替身使者。这里我们将替身这一类理解成被代理对象,替身使者理解成代理对象;
// 定义替身
function Stand(name){
this.name = name;
}
Stand.prototype = {
motto: function (motto) {
console.log(motto);
},
attack: function (words) {
console.log(words);
},
silverBullet: function (sb) {
console.log(sb);
}
}
// 定义替身使者 (代理)
function Stander(name) {
this.stander = new Stand(name);
}
Stander.prototype = {
motto: function (motto) {
return this.stander.motto(motto);
},
attack: function (words) {
return this.stander.attack(words);
},
silverBullet: