美文网首页
行为委托

行为委托

作者: BIGHAI | 来源:发表于2017-06-08 17:50 被阅读0次

看起来,React组件中的prop很像是HTML元素的属性,不过HTML组件属性的值都死字符串类型 ,即使是内嵌JavaScript,他也必须是字符串形式。而React组件中的prop所能支持的类型则丰富的多,但是当prop的值的数据类ing不是字符串的时候,那么在JSX中必须用{}将prop值给包括起来。所以对于某些prop来说,很可能他的值是一种很怪异的形式出现,比如说对于style这个prop,他的值很可能是这样的:{{'width': '100px'}}。哈

通过前面的学习,我们可以总结一下对象属性查找的机制:如果在第一个对象上没有找到需要的属性或者方法引用,引擎就会继续在该对象的[[Prototype]]关联的那个对象上进行查找。同理,如果在后者中也还是没有找到需要的属性的话,那么将会继续在它的[[Prototype]]所关联的对象进行查找,知道找到Object.prototype为止。我们称这一系列对象的链接为“原型链”。

对象委托是一种极其强大的设计模式,它可以让我们极其自由将某个对象关联到其他对象上,从而避免了必须先要构造函数的麻烦。并且对象委托的自由度太高了,毕竟你的原型链是你自己希望有多长就可以有多长,但是必须声明的是越长的原型链对于程序的维护是越困难的。下面举一个例子:

var supercla = {
  'setId': function(id){this.id = id},
  'getId': function(){console.log(this.id)}
}
var child = Object.create(supercla)
child.set = function(id, label){
  this.setId(id)
  this.label = label
}
child.get = function(){
  this.getId()
  console.log(this.label)
}
var obj1 = Object.create(child)
var obj2 = Object.create(child)
obj1.set(12, 'a')
obj2.set(15, 'b')
obj1.get()//12 'a'
obj2.get()//15 'b'

需要注意的地方:对于obj1和obj2对象来说,id和label属性肯定是定义在自身上面的,关于这点,分析一下即可。

END

相关文章

  • 行为委托

    1、面向委托的设计思考下列代码: 首先定义一个名为Task的对象,它包含所有任务都可以使用的具体行为。接着对于每个...

  • 行为委托

    这个场景中我们将讲解两个控制器对象,一个用来处理网页的登录form(表单),另一个实际处理服务器的认证(通信) 根...

  • 行为委托

    看起来,React组件中的prop很像是HTML元素的属性,不过HTML组件属性的值都死字符串类型 ,即使是内嵌J...

  • 6 行为委托

    JS中的原型链机制的本质就是对象之间的关联关系。 面向委托的设计 我们需要把思路从类和继承的设计模式转换到委托行为...

  • 行为委托理论

    为了更好地学习如何更直观地使用 [[Prototype]] ,我们必须认识到它代表的是一种不同于类的设计模式。 1...

  • 未成年人能否办理购房委托公证?

    问题:甲(15岁)申请办理购房委托公证,根据相关法律规定,无民事行为能力人不能办理委托,限制民事行为能力人办理委托...

  • 设计模式-策略模式

    抽取对象行为成算法簇 对象行为委托给算法接口执行

  • 聊聊对象行为委托

    昨天我们聊到了对象的原型,知道了有 new 和 Object.create() 两种操作原型的方式。今天我们来对比...

  • 2017.11.1

    委托是一种引用方法的类型。 一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用事件可以像其他任...

  • Kotlin零基础学习 委托和代理

    一.委托代理概念 委托:把事情委托给别人办理。代理:以他人名义,在授权范围内进行对被代理人直接发生的行为。 有点弄...

网友评论

      本文标题:行为委托

      本文链接:https://www.haomeiwen.com/subject/dgktqxtx.html