本章移到“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…
故事背景 Ref: 你不知道的javascript之Object.create 和new区别 var Base = function () {} (1) var o1 = new Base(); (2) var o2 = Object.create(Base); // <----推荐 (1) 使用的是__proto__ // var o1 = new Object(); o1.__proto__ = Base.prototype; Base.call(o1); (2) 使用的是prototype…
核心模块主要内容: 全局对象 常用工具 事件机制 文件系统访问 http服务器和客户端 global object: 所有的全局变量(除了global本身外)都是global object 的属性(attribute) global object,global variable global的根本作用就最为全局变量的宿主: what is global variable?: 在最外层定义的 全局对象的属性 隐式定义的变量(未定义直接赋值的变量) Notice: 在Node.js中,你不可能在最外…
在js中经常需要知道Object中的所有属性及值,然而若是直接弹出Object,则是直接显示一个对象,它的属性和值没有显示出来, 不是我们想要的结果,从而需要遍历Object的所有属性. var obj=要遍历的对象 var str=“”;for (var item in obj){ str +=item+":"+obj[item]+"\n";} alert("str==:\n"+str); 弹出所有属性及值 从而选出我们想要的…
万物皆对象,而对象完全可以用键值对来表示,所以,在js中,也是通过键值对来表示对象的,在开发中,我在修改的时候,知道属性值可以直接用点.符号来获取值,但是写common.js的时候,发现这个属性名称是变化的,也就是这样就不能通过点来动态获取了,那么这个怎么获取呢? 先看下面 var obj = {"name1":"张三","name2":"李四"}; var key = "name1"; var value…
The JavaScript specification gives exactly one proper way to determine the class of an object: Object.prototype.toString.call(t); http://bonsaiden.github.com/JavaScript-Garden/#types https://stackoverflow.com/questions/7893776/the-most-accurate-way-t…
Object对象详细参考 本文参考MDN做的详细整理,方便大家参考MDN JavaScript原生提供一个Object对象(注意起首的O是大写),所有其他对象都继承自这个对象. 构造函数: Object 构造函数为给定的值创建一个对象包装. 如果给定值是 null or undefined,将会创建并返回一个空对象 否则,将返回一个与给定值对应类型的对象. 当以非构造函数形式被调用时,Object() 等同于 new Object(). var o1 = new Object();//创建空对象…
参考:http://stackoverflow.com/questions/650764/how-does-proto-differ-from-constructor-prototype http://blog.rainy.im/ __proto__ is the actual object that is used in the lookup chain to resolve methods, etc. prototype is the object that is used to build…
var data = { a: 'a', b: '' } 删除 b和''的配对, /** * Delete all null (or undefined) properties from an object. * Set 'recurse' to true if you also want to delete properties in nested objects. */ function delete_null_properties(test, recurse) { for (var i i…