<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sự khác biệt giữa Arrow Function - Thien An Blog</title>
	<atom:link href="https://thienanblog.com/tag/su-khac-biet-giua-arrow-function/feed/" rel="self" type="application/rss+xml" />
	<link>https://thienanblog.com/tag/su-khac-biet-giua-arrow-function/</link>
	<description>Javascript - PHP - SEO - Web Development</description>
	<lastBuildDate>Sat, 07 Oct 2017 06:34:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://thienanblog.com/wp-content/uploads/2017/05/TAB_favicon.ico.png</url>
	<title>sự khác biệt giữa Arrow Function - Thien An Blog</title>
	<link>https://thienanblog.com/tag/su-khac-biet-giua-arrow-function/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sự khác biệt giữa Arrow Function và Function thông thường</title>
		<link>https://thienanblog.com/javascript/javascript-co-ban/su-khac-biet-giua-arrow-function-va-function-thong-thuong/</link>
					<comments>https://thienanblog.com/javascript/javascript-co-ban/su-khac-biet-giua-arrow-function-va-function-thong-thuong/#respond</comments>
		
		<dc:creator><![CDATA[Ân Vũ]]></dc:creator>
		<pubDate>Sun, 03 Sep 2017 13:42:26 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Javascript cơ bản]]></category>
		<category><![CDATA[anonymous function và arrow function]]></category>
		<category><![CDATA[arrow function là gì]]></category>
		<category><![CDATA[arrow function trong es6]]></category>
		<category><![CDATA[Arrow Function và Function có giống nhau không]]></category>
		<category><![CDATA[cách sử dụng Arrow Function]]></category>
		<category><![CDATA[function và arrow function]]></category>
		<category><![CDATA[sự khác biệt giữa Arrow Function]]></category>
		<category><![CDATA[sự khác nhau giữa Arrow Function]]></category>
		<category><![CDATA[sự khác nhau giữa Arrow Function và Function]]></category>
		<category><![CDATA[tìm hiểu arrow function]]></category>
		<guid isPermaLink="false">https://thienanblog.com/?p=283</guid>

					<description><![CDATA[<p>Sơ lược về bài viết Ở bài viết trước, chúng ta đã xem qua Tìm hiểu về một số cú pháp ES6 trong JavaScript . Trong bài viết này, chúng ta sẽ&#8230;</p>
<p>The post <a href="https://thienanblog.com/javascript/javascript-co-ban/su-khac-biet-giua-arrow-function-va-function-thong-thuong/">Sự khác biệt giữa Arrow Function và Function thông thường</a> appeared first on <a href="https://thienanblog.com">Thien An Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://thienanblog.com/wp-content/uploads/2017/09/arrow-funcs.png"><img fetchpriority="high" decoding="async" class="wp-image-284 aligncenter" src="https://thienanblog.com/wp-content/uploads/2017/09/arrow-funcs.png" alt="" width="407" height="226" srcset="https://thienanblog.com/wp-content/uploads/2017/09/arrow-funcs.png 1080w, https://thienanblog.com/wp-content/uploads/2017/09/arrow-funcs-300x167.png 300w, https://thienanblog.com/wp-content/uploads/2017/09/arrow-funcs-768x427.png 768w, https://thienanblog.com/wp-content/uploads/2017/09/arrow-funcs-1024x569.png 1024w" sizes="(max-width: 407px) 100vw, 407px" /></a></p>
<h3>Sơ lược về bài viết</h3>
<div>Ở bài viết trước, chúng ta đã xem qua <a href="https://thienanblog.com/javascript/cu-phap-es6-es2015-trong-javascript/">Tìm hiểu về một số cú pháp ES6 trong JavaScript</a> . Trong bài viết này, chúng ta sẽ tìm hiểu về sự khác biệt giữa Arrow Function và Function thông thường khi sử dụng trên thực tế. Tuy <a href="https://thienanblog.com/javascript/cu-phap-es6-es2015-trong-javascript/">Arrow Function</a> và Function phần giống nhau về cách định nghĩa 1 hàm nhưng tham chiếu đến bối cảnh (<strong>context</strong>) hay môi trường xung quanh nó sẽ khác. Vậy tham chiếu đến bối cảnh hay môi trường xung quanh là như thế nào? Chúng ta sẽ cùng bắt đầu tìm hiểu.</div>
<div></div>
<p><span id="more-283"></span></p>
<p>Các chủ đề mà chúng ta sẽ tìm hiểu như sau:</p>
<ol>
<li>Ví dụ cơ bản về bối cảnh (<strong>context</strong>)</li>
<li>Ví dụ bối cảnh khi dùng trong setTimeout kết hợp với jQuery</li>
<li>Một ví dụ khác khi kết hợp Arrow Function với Animation của jQuery</li>
<li>Arrow Function thường được dùng trên Class (ES6)</li>
</ol>
<h3>Ví dụ cơ bản về bối cảnh (<strong>context</strong>)</h3>
<div>Vậy bối cảnh ở đây là gì? Thật khó để định nghĩa cho các bạn chính xác được nghĩa của nó ở ngữ cảnh tiếng Việt. Vì thế các bạn chỉ cần hiểu đơn giản là từ khóa <span class="lang:default decode:true crayon-inline">this</span> được sử dụng trong Function thông thường và Arrow Function sẽ tham chiếu đến những môi trường hay bối cảnh khác nhau. Để tránh khó hiểu thêm, các bạn hãy xem qua ví dụ bên dưới:</div>
<div><p class='codepen'  data-height='265' data-theme-id='0' data-slug-hash='dzrMag' data-default-tab='js,result' data-animations='run' data-editable='' data-embed-version='2'>
See the Pen Sự khác nhau giữa Function thông thường và Arrow Function by An Vu (@thienanblog) on CodePen.</p>
</div>
<div>
<div>Ở ví dụ này các bạn cũng đã thấy từ khóa <span class="lang:default decode:true crayon-inline">this</span> của chúng ta có giá trị khác biệt, <span class="lang:default decode:true crayon-inline ">this</span> ở function thường sẽ tham chiếu đến chính Object chứa nó, còn Arrow Function sẽ tham chiếu đến cha gần nhất của nó nên vì thế nó hiểu từ khóa <span class="lang:default decode:true crayon-inline">this</span> của function cha bao hàm nó.</div>
<div></div>
<div>Và khi các bạn có dùng thêm <span class="lang:default decode:true crayon-inline ">use strict</span> để ràng buộc chặt chẽ hơn về <a href="https://thienanblog.com/javascript/javascript-co-ban/bai-2-pham-vi-hoat-dong-cua-bien-trong-javascript/">phạm vi hoạt động của biến</a> thì <span class="lang:default decode:true crayon-inline ">this</span>  trong Arrow Function có giá trị sẽ là <span class="lang:default decode:true crayon-inline ">undefined</span> thay vì trả về cho các bạn đối tượng <span class="lang:default decode:true crayon-inline">window</span>. Nên các bạn hãy chú ý điều này.</div>
</div>
<h3>Ví dụ bối cảnh khi dùng trong setTimeout kết hợp với jQuery</h3>
<p class='codepen'  data-height='265' data-theme-id='0' data-slug-hash='RZdRrX' data-default-tab='js,result' data-animations='run' data-editable='' data-embed-version='2'>
See the Pen Bối cảnh khi dùng trong setTimeout kết hợp với jQuery của Arrow Function by An Vu (@thienanblog) on CodePen.</p>

<div>
<div>Như các bạn cũng thấy rằng ở <a href="https://thienanblog.com/javascript/javascript-co-ban/bai-6-anonymous-function-va-closure/">Anonymous Function</a>, chúng ta phải lưu tạm <span class="lang:default decode:true crayon-inline">this</span> của phương thức click vào biến <span class="lang:default decode:true crayon-inline">btn</span> để có thể truyền vào bên trong setTimeout. Trong đó, từ khóa <span class="lang:default decode:true crayon-inline ">this</span> ở đối số của setTimeout được tham chiếu đến chính Anonymous Function của nó. Vì vậy, nó sẽ không hiểu <span class="lang:default decode:true crayon-inline ">this</span> ở đây có ý nghĩa là btn chứ không phải là Anonymous Function đang được dùng.</div>
<div></div>
<div>Và khi các bạn dùng Arrow Function, chúng ta đã đơn giản hóa đi 1 bước khi dùng, giúp cho code của chúng ta dễ hiểu hơn là <span class="lang:default decode:true crayon-inline ">this</span> này được tham chiếu đến chính Anonymous Function của phương thức click của jQuery chứ không phải chính nó nữa.</div>
</div>
<div></div>
<h3>Một ví dụ khác khi kết hợp Arrow Function với Animation của jQuery</h3>
<p class='codepen'  data-height='265' data-theme-id='0' data-slug-hash='QMoNoN' data-default-tab='js,result' data-animations='run' data-editable='' data-embed-version='2'>
See the Pen Một ví dụ khác khi kết hợp Arrow Function với Animation của jQuery by An Vu (@thienanblog) on CodePen.</p>

<p>Tương tự với ví dụ ở trên, trong ví dụ này tôi chủ yếu muốn cho các bạn thêm một số kinh nghiệm khi sử dụng trên thực tế như thế nào.</p>
<h3>Arrow Function thường được dùng trên Class</h3>
<div>Chuẩn ES6 cho phép chúng ta có thể viết class giống như những ngôn ngữ khác mà các bạn có thể đã từng biết qua, nếu chưa biết thì bây giờ các bạn biết, không sao cả. Tuy nhiên, class trong Javascript có những quy ước và cách khởi tạo thuộc tính khác biệt so với các ngôn ngữ từng được biết. Thông qua ví dụ này, phần nào các bạn cũng sẽ thích thú viết class hơn là viết function thông thường.</div>
<div><p class='codepen'  data-height='265' data-theme-id='0' data-slug-hash='gxEryV' data-default-tab='js,result' data-animations='run' data-editable='' data-embed-version='2'>
See the Pen Arrow Function trên Class by An Vu (@thienanblog) on CodePen.</p>
</div>
<div>
<div>Khi chạy ví dụ này, các bạn cũng sẽ thấy rằng việc chúng ta sử dụng Function thông thường trên Class sẽ khiến từ khóa <span class="lang:default decode:true crayon-inline ">this</span> của chúng ta có giá trị <span class="lang:default decode:true crayon-inline">undefined</span> ngay. Nên Arrow Function cũng thường rất được dùng trên Class thay vì Function thông thường. Chỉ là thường dùng thôi nhé, vì một số trường hợp chúng ta vẫn phải sử dụng Function thông thường để tham chiếu đến <span class="lang:default decode:true crayon-inline ">this</span> của chính nó. Thường là các callback được gọi từ các sự kiện của thư viện bên ngoài mà chúng ta sử dụng.</div>
<div></div>
<div>Nếu bạn vẫn còn hứng thú thì hãy xem qua sự kiện onSet trong thư viện <strong><a href="http://amsul.ca/pickadate.js/">Pickadate</a></strong> để hiểu rõ hơn tôi nói cái gì. Nếu như chúng ta dùng Arrow Function trong trường hợp đó thì chắc chắn sẽ nhận sai giá trị ngay. Vì vậy, hãy đón xem ở 1 bài viết khác về thư viện Pickadate này mà tôi sẽ viết sắp tới các bạn nhé.</div>
<div></div>
<div>Qua bài viết này, chúng ta cũng đã tìm hiểu xong sự khác biệt giữa Arrow Function và Function thông thường như thế nào rồi. Cám ơn các bạn đọc giả đã ủng hộ Website.</div>
</div>
<p>The post <a href="https://thienanblog.com/javascript/javascript-co-ban/su-khac-biet-giua-arrow-function-va-function-thong-thuong/">Sự khác biệt giữa Arrow Function và Function thông thường</a> appeared first on <a href="https://thienanblog.com">Thien An Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thienanblog.com/javascript/javascript-co-ban/su-khac-biet-giua-arrow-function-va-function-thong-thuong/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
