You Don't Know JS: this & Object Prototypes( 第3章 对象)
前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 myObj = new Object();
myObj.key = value;
2者的结果没有区别。
用constructed form来创建对象及其少见。 开发者总是使用literal form。就连内建对象也是这样。
Type
object是6种primary types之一。 (string, number, boolean, null, undefined, object)
⚠️, 不是everything in JavaScript is an object, 这句话在JavaScript中完全❌!
对象有复杂的子类型。 complex primitives。
- 函数是一种子类型,a callable object。不过和普通的对象使用方式是一样的。
- 数组Array也是一种子类型,有额外的行为。
- 普通对象是hash类型。是对象的主类型。
Build-in 对象
其他的对象子类型,都是内建对象。
从名字看他们似乎和他们的simple primitives counter-parts(副本)相关,但是:
他们的关系是很复杂的,下面会进行简短的探索。
- String
- Number
- Boolean
- Object
- Function
- Array
- Date
- RegExp
- Error
qu上章提到过[[prototype]] chain, 本章详细分析 ⚠️所有试图模仿类复制的行为,如上章提到的mixins的变种,完全规避了[[Prototype]] chain机制,本章会谈到这方 ... 本章移到“Object oriented programming”和"classes". 看‘class orientation‘ 的设计模式: instantiation, in ... this is a binding made for each function invocation, based entirely on its call-site (how the functi ... Foreword this 关键字和prototypes 他们是用JS编程的基础.没有他们创建复杂的JS程序是不可能的. 我敢说大量的web developers从没有建立过JS Object,仅仅对 ... 本章深挖原型机制. [[Prototype]]比类更直接和简单! https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%2 ... 转自:http://zzy603.iteye.com/blog/973649 写的挺好,用于记录,把对象分成概念的Object(var f={})和 类的Object(function F(){}) ... http://anykoro.sinaapp.com/2012/01/31/javascript%E4%B8%ADfunctionobjectprototypes__proto__%E7%AD%89% ... 故事背景 Ref: 你不知道的javascript之Object.create 和new区别 var Base = function () {} (1) var o1 = new Base(); (2 ... n = object对象 for(var p in n){ console.log(p);// 取得是key值 console.log(n[p]);//取得是value值 } 继之前js中数组的常用方 ... 1.is 和 ==的区别: 主要参考内存地址: 部分字符串和数字有固定的小数据池: 比如: a="abc" a1="abc" print(id(a),id(a ... 一直在使用ODAC做开发,没时间仔细研究一下,目前采用的是3层结构,ODAC+TDataSetProvider+TClientDataSet做数据处理,也没有多大问题.下一步要开发B/S的程序了,打算 ... 基本用法 -认证功能 1 写一个类,继承BaseAuthentication 2 def authenticate(self,request) ,记住传request对象 -如果验证通过,返回None ... 1.安装 到官网链接下载最新的bin版本,解压到 D:\Program Files (x86)\JetBrains\IDEA Configuration And Cache\gradle 配置环境变量 ... 思路 polya定理的模板题,但是还要加一些优化 题目的答案就是 \[ \frac{\sum_{i=1}^n n^{gcd(i,n)}}{n} \] 考虑上方的式子怎么求 因为\(gcd(i,n)\) ... 数据集是 seq 文件的处理办法 2017-03-17 最近下了一个数据集,是 seq 格式的,第一次处理这种数据.使用了官方提供的 matlab 工具包:https://pdollar.github ... 题意 给出字符串的长度 \(n\) ,以及该字符串是由哪些小写字母组成,现给出一个坏串 \(S\) ,求存在多少种不同的字符串,使得其子串不含坏串. \(1 \leq n \leq 10^9\) \( ... 微软Azure机器学习服务 01|机器学习概述 首先上一张图, 这个图里面的大神是谁我也不清楚反正,但是看起来这句话说得很有哲理就贴出来了. 所以在人工智能领域下面的这个机器学习,到底是一个什么样的概 ... Set<K> keySet() //返回值是个只存放key值的Set集合(集合中无序存放的)Set<Map.Entry<K,V>> entrySet() //返回映 ... Java 基础语法特性: 首先了解并做好Java Web 开发环境配置(包含 JDK 的配置)是非常必要的.其中 CLASSPATH 的值开始必须包含 ".",否则用 javac ...You Don't Know JS: this & Object Prototypes( 第3章 对象)的更多相关文章
随机推荐