首页 > 其他 > 详细

React 万能的函数表达式

时间:2015-12-16 01:37:48      阅读:299      评论:0      收藏:0      [点我收藏+]

一、语法简介

表达式可以以下两种方法,

(1)(function A(){})(this),(this)参数在函数外面

(2)(function B(){}(this)),(this)参数在函数里面

(1)和(2)的区别在于,(1)的左边的一对括号是强制A()求值,返回函数的引用,再传this参数调用函数求值,而(2)是把(this)传给A(),直接返回函数的返回值,而不是函数引用本身。

 

方式一:

<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <script src="./react-0.13.2/build/react.js"></script>
    <script src="./react-0.13.2/build/JSXTransformer.js"></script>
	<script type="text/jsx">
		var style = {
			color : "red",
			border: "1px #000 solid",
		};
		var HelloWorld = React.createClass({
			render: function(){
				return <p>你好, {
					(function(obj){
						if(obj.props.name)
							return obj.props.name
						else
							return "World!"
					})(this)
				}</p>;
			}
		});
		React.render(<div style={style}><HelloWorld name="李小龙!"></HelloWorld></div>, document.body);
	</script>
</body>

</html>

  

方式二:

<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <script src="./react-0.13.2/build/react.js"></script>
    <script src="./react-0.13.2/build/JSXTransformer.js"></script>
	<script type="text/jsx">
		var style = {
			color : "red",
			border: "1px #000 solid",
		};
		var HelloWorld = React.createClass({
			render: function(){
				return <p>你好, {
					(function(obj){
						if(obj.props.name)
							return obj.props.name
						else
							return "World!"
					}(this))
				}</p>;
			}
		});
		React.render(<div style={style}><HelloWorld name="李小龙!"></HelloWorld></div>, document.body);
	</script>
</body>

</html>

  

运行结果:

技术分享

React 万能的函数表达式

原文:http://www.cnblogs.com/shamgod/p/5049950.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!