qu上章提到过[[prototype]] chain, 本章详细分析 ⚠️所有试图模仿类复制的行为,如上章提到的mixins的变种,完全规避了[[Prototype]] chain机制,本章会谈到这方面 [[Prototype]] 一个特别的内建属性.用于引用到其他对象.当对象创建后,会得到一个这个属性的非空值. 例子 var anotherObject = { a: 2 }; // create an object linked to `anotherObject` var myObject…
本章移到“Object oriented programming”和"classes". 看‘class orientation‘ 的设计模式: instantiation, inheritance, relative 多态性. 会重点讲解oop理论,当讲到Mixins, 我们会最终联系这些思想到真实的JS代码. 在这之前会先说大量的概念,pseudo-code,所以不要迷失,stick with it!! Class Theory OO or class oriented progr…
this is a binding made for each function invocation, based entirely on its call-site (how the function is called). this是为函数被引用而创建的绑定!完全地基于函数如何被调用/函数的call-site! Call-site :the location in code where a function is called call-stack: 调用函数的堆栈.(函数的调用链条,函数…
前2章探索了this绑定指向不同的对象需要函数引用的call-site. 但是什么是对象,为什么我们需要指向它们? 本章探索细节. Syntax the rules  that describe how words and phrases are used in a computer language! 对象来源于两种forms declarative(literal) form: constructed from var myObj = { key: value // ... }; var m…
Foreword this 关键字和prototypes 他们是用JS编程的基础.没有他们创建复杂的JS程序是不可能的. 我敢说大量的web developers从没有建立过JS Object,仅仅对待这门语言作为一个事件绑定胶水,在按钮和Ajax请求之间. 我也曾是他们的一员,但是当我了解到如何掌握prototypes并创建JS对象,一个世界的可能性对我打开了. Chapter 1: this Or That? Chapter 2: this All Makes Sense Now! Chap…
本章深挖原型机制. [[Prototype]]比类更直接和简单! https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch6.md 这个实际的机制,都是关于对象之间的连接,一个对象被连接到其他对象上! Towards Delegation-Oriented Design 行为授权的设计模式.OLOO模式. Class Theory(略) Delegation Theory…
转自:http://zzy603.iteye.com/blog/973649 写的挺好,用于记录,把对象分成概念的Object(var f={})和 类的Object(function F(){}) ------------------------------------- 前言 首先,要说明的我是一个计算机爱好者,但我并不是科班出身,也没有受过专业的培训,所以,有些专业名词可能用的不当或者看法偏激乃至错误,敬请谅解并给予斧正为盼.一.Object是什么? 刚开始我简单地认为Object是js的…
http://anykoro.sinaapp.com/2012/01/31/javascript%E4%B8%ADfunctionobjectprototypes__proto__%E7%AD%89%E6%A6%82%E5%BF%B5%E8%AF%A6%E8%A7%A3/ http://www.cnblogs.com/youxin/p/3219175.html Javascript中Function,Object,Prototypes,__proto__等概念是在JavaScript中很常用,但…
在介绍js中Object.defineProperty()和defineProperties()之前,我们了解下js中对象两种属性的类型:数据属性和访问器属性. 数据属性 数据属性包含一个数据的位置,在这个位置可以读取和写入.其有4个描述其行为的特性 [[Configurable]] 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性.通过对象字面量创建的属性,默认为true [[Enumerable]] 表示能否通过for-in循环访问属性.(或通…
js之object 对象 ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值.对象或函数”.严格来说,这意味着对象是无特定顺序的值的数组. 尽管 ECMAScript 如此定义对象,但它更通用的定义是基于代码的名词(人.地点或事物)的表示. 类 每个对象都由类定义,可以把类看做对象的配方.类不仅要定义对象的接口(interface)(开发者访问的属性和方法),还要定义对象的内部工作(使属性和方法发挥作用的代码).编译器和解释程序都根据类的说明构建对象. 实例…