开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

MooTools 和 PHP 中的方法链接

如今大多数 JavaScript 和 PHP 框架的重要组成部分之一是能够链接类方法。我收到了很多关于这如何可能的问题,所以我想介绍允许在您自己的自定义类中进行链接的基础知识。

让我们首先从在 MooTools Element 类上实现一些新方法开始:

/* implement functionality */
Element.implement({
	doTaskA: function() {
		/* do stuff */
	},
	doTaskB: function() {
		/* do stuff */
	}
});

根据这篇文章,上述方法实际上做了什么并不是很重要。现在您已准备好这些方法,请尝试以下操作:

/* Example */
$('myElement').doTaskA().doTaskB();

好吗?没有。您最终会遇到以下错误:

$('myElement').doTaskA() is undefined

什么? doTaskA() 绝对存在!!为什么会出现此错误?虽然 doTaskA() 确实存在,但该方法不返回任何内容。

方法链接的策略是返回对当前对象的引用。如何?让我们更新 doTaskA()doTaskB() 方法以允许方法链接:

Element.implement({
	doTaskA: function() {
		/* do stuff */
		return this;
	},
	doTaskB: function() {
		/* do stuff */
		return this;
	}
});

返回 this 会保留引用,这反过来又会保持链接的能力。您可以在 PHP 中做同样的事情:

public function doTaskA() {
	return $this;
}

public function doTaskB() {
	return $this;
}

/* usage */
$myObject->doTaskA()->doTaskB();

类方法链接是保持代码简洁的好方法。不过,不要对链接过于执着——一定要在链接与可读性之间取得平衡。

未经允许不得转载:我爱分享网 » MooTools 和 PHP 中的方法链接

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏