<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>This &amp; Object Prototypes on Xinyu's Blog</title><link>https://xinyuli.blog/categories/this--object-prototypes/</link><description>Recent content in This &amp; Object Prototypes on Xinyu's Blog</description><image><title>Xinyu's Blog</title><url>https://xinyuli.blog/og.png</url><link>https://xinyuli.blog/og.png</link></image><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 29 Dec 2016 00:00:00 +0800</lastBuildDate><atom:link href="https://xinyuli.blog/categories/this--object-prototypes/index.xml" rel="self" type="application/rss+xml"/><item><title>第四章混合对象"类"</title><link>https://xinyuli.blog/2016/12/29/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E5%9B%9B%E7%AB%A0%E6%B7%B7%E5%90%88%E5%AF%B9%E8%B1%A1%E7%B1%BB/</link><pubDate>Thu, 29 Dec 2016 00:00:00 +0800</pubDate><guid>https://xinyuli.blog/2016/12/29/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E5%9B%9B%E7%AB%A0%E6%B7%B7%E5%90%88%E5%AF%B9%E8%B1%A1%E7%B1%BB/</guid><description>&lt;h2 id="类理论"&gt;类理论&lt;/h2&gt;
&lt;p&gt;类/继承描述了一种代码组织形式，类和继承是对真实世界中事物的抽象和建模。&lt;/p&gt;
&lt;p&gt;类意味着复制，传统的类被实例化时，它的行为会被复制到实例中。类被继承时，行为也会被
复制到子类中&lt;/p&gt;
&lt;h3 id="类设计模式"&gt;&amp;ldquo;类设计模式&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;类其实是一种软件设计模式，是一种可选的代码抽象。&lt;/p&gt;
&lt;h3 id="javascript中的类"&gt;JavaScript中的&amp;quot;类&amp;quot;&lt;/h3&gt;
&lt;p&gt;JavaScript中并没有真正的类，只有近似类的语法, 因为JavaScript并不会像类那样自动创建对象
的副本。&lt;/p&gt;</description></item><item><title>第三章对象</title><link>https://xinyuli.blog/2016/12/27/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E4%B8%89%E7%AB%A0%E5%AF%B9%E8%B1%A1/</link><pubDate>Tue, 27 Dec 2016 00:00:00 +0800</pubDate><guid>https://xinyuli.blog/2016/12/27/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E4%B8%89%E7%AB%A0%E5%AF%B9%E8%B1%A1/</guid><description>&lt;h2 id="语法"&gt;语法&lt;/h2&gt;
&lt;p&gt;对象有两种定义形式：声明形式和构造形式&lt;/p&gt;
&lt;p&gt;声明形式:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;构造形式:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="类型"&gt;类型&lt;/h2&gt;
&lt;p&gt;在JavaScript中共有6种基本类型（现在是7种）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;string&lt;/li&gt;
&lt;li&gt;number&lt;/li&gt;
&lt;li&gt;boolean&lt;/li&gt;
&lt;li&gt;null&lt;/li&gt;
&lt;li&gt;undefined&lt;/li&gt;
&lt;li&gt;object&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;还有一种symbol类型&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;简单基本类型并不是对象&lt;/strong&gt;，虽然&lt;code&gt;typeof null === 'object'&lt;/code&gt;，但是这个语言的一个bug&lt;/p&gt;</description></item><item><title>第二章this全面解析</title><link>https://xinyuli.blog/2016/12/22/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E4%BA%8C%E7%AB%A0this%E5%85%A8%E9%9D%A2%E8%A7%A3%E6%9E%90/</link><pubDate>Thu, 22 Dec 2016 15:00:00 +0800</pubDate><guid>https://xinyuli.blog/2016/12/22/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E4%BA%8C%E7%AB%A0this%E5%85%A8%E9%9D%A2%E8%A7%A3%E6%9E%90/</guid><description>&lt;h2 id="绑定规则"&gt;绑定规则&lt;/h2&gt;
&lt;p&gt;this的绑定规则总结起来总共有四种：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;默认绑定&lt;/li&gt;
&lt;li&gt;隐式绑定&lt;/li&gt;
&lt;li&gt;显式绑定&lt;/li&gt;
&lt;li&gt;new绑定&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="默认绑定"&gt;默认绑定&lt;/h3&gt;
&lt;p&gt;这条规则是无法应用其它绑定时的默认规则，思考以下代码：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;// 2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>第一章关于this</title><link>https://xinyuli.blog/2016/12/22/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E4%B8%80%E7%AB%A0%E5%85%B3%E4%BA%8Ethis/</link><pubDate>Thu, 22 Dec 2016 14:00:00 +0800</pubDate><guid>https://xinyuli.blog/2016/12/22/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84JavaScript%E4%B8%8A%E5%8D%B7/This%20&amp;%20Object%20Prototypes/%E7%AC%AC%E4%B8%80%E7%AB%A0%E5%85%B3%E4%BA%8Ethis/</guid><description>&lt;h2 id="为什么要用this"&gt;为什么要用this&lt;/h2&gt;
&lt;p&gt;this保存着上下文对象，避免显式地传递上下文对象&lt;/p&gt;
&lt;h2 id="this到底是什么"&gt;this到底是什么&lt;/h2&gt;
&lt;p&gt;this是在运行时绑定的，并不是在编写时绑定的，它的的上下文取决于函数调用时的各种条件，this的绑定和函数声明的位置没有任何关系，
只取决于函数的调用方式。&lt;/p&gt;</description></item></channel></rss>