// Object 与 Function神奇而混乱的搞基关系... Object.__proto__ === Function.prototype; // true Object.__proto__ === Function.__proto__; // true Object.__proto__.__proto__ === Function.prototype.__proto__; // true Object.prototype === Function.__proto__.__proto__…
一. javascript 的 内置对象: Object 和 Function javascript所有东西,包括 Function 都是对象 . Array  其实是一个 Function 类型的对象, 它的prototype 是指向了 Function.prototype . new Array()  是一个 Object 对象, 它的 prototype 指向了 Object.prototype . 函数的第一种定义方法: function sum1(a,b){              …
var F = function(){}; Objcert.prototype.a = function(){}; Function.prototype.b = function(){}; F 既能访问到a,也能访问到(Object 和 Function也同样,但是所有的实例只能访问到a):F是Object 和 Function 两个的实例,那么Object 和 Function 到底是什么关系? 下面是对Object 和 Function 的了解 F instanceof Object tru…
一. Prototype.__proto__与Object.Function关系介绍 Function.Object:都是Js自带的函数对象.prototype,每一个函数对象都有一个显式的prototype属性(普通对象没有prototype),它代表了对象的原型(Function.prototype是一个对象,有constructor和__proto__两个属性,constructor指向构造函数本身,__proto__指向于它所对应的原型对象).__proto__:每个对象都有一个名为__…
JavaScript原生对象的api有些情况下使用并不方便,考虑扩展基于Object.Function.String.Array扩展,参考了prototype.js的部分实现,做了提取和修改,分享下: /** * * @authors yinshen (shenyin19861216@163.com) * @date 2013-09-05 23:23:25 * @version $Id$ */ //Object 扩展 (function() { var FUNCTION_CLASS = '[ob…
首先需要确定的是,instanceof是根据原型链来判断是否为某引用类型的实例.所以需要明白Object和Function之间的关系,以下为引用某博客的图片,阐述了javascript对象体系的关系 原型链的形成: 当通过new操作符构建一个对象时,该对象将拥有一个__proto__属性,指向构造函数的原型对象,__proto__这条线就是原型链.根据上图所示Object在Function原型链之上,Function也在Object原型链之上,所以Object instanceof Functi…
参考: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…
ECMAScript规定了两个特殊的内置对象:Object和Function.他们的特殊性在于,他们本身既是对象又是函数,而他们同时也是对象和函数的构造器.这种自己生自己的逻辑显然违反人性,如果还停留在类的继承的思想上,那么更加无法理解. 然而ECMAScript是基于原型链的,所以忘掉类的继承,从原型链入手:原型链是对象的集合,每个对象都有内部属性[[Prototype]](注1)指向另一个对象:当访问对象某一属性的时候,如果此属性不为此对象的自身属性(注2),则继续去[[Prototype]…
一    Prototype.__proto__与Object.Function关系介绍        Function.Object:Js自带的函数对象.         prototype,每一个函数对象都有一个显示的prototype属性,它代表了对象的原型(Function.prototype函数对象是个例外,没有prototype属性).         __proto__:每个对象都有一个名为__proto__的内部隐藏属性,指向于它所对应的原型对象(chrome.firefox中名…
先看一个简单的function变量 function fun1(name) { this.name = name; } console.log("fun1", fun1) 从结果可以看到定义一个function,它里边所含有的内容这六个属性是每个function所必有的,直接看第五个prototype(注意prototype是一个对象)就是传说中的原型(本文只称它为prototype,也叫显性原型),第六个属性是灰色的并且用尖括号括起来,在以前版本的浏览器它有另外一个名字叫__prot…
JavaScript里任何东西都是对象,任何一个对象内部都有另一个对象叫__proto__,即原型,它可以包含任何东西让对象继承.当然__proto__本身也是一个对象,它自己也有自己的__proto__,这样一级一级向上,就构成了一个__proto__链,即原型链.当然原型链不会无限向上,它有个终点,可以称为原型链的顶端,或者root,它是一个特殊的对象,它的__proto__为null. obj.__proto__.__proto__......__proto__ === null; 但是对…
壹 ❀ 引 我在JS 疫情宅在家,学习不能停,七千字长文助你彻底弄懂原型与原型链一文中介绍了JavaScript原型与原型链,以及衍生的__proto__.constructor等一系列属性.在解答了多个问题的同时,也得出了很多有趣的结论.比如我们常说JavaScript中函数是一等公民,这是因为函数扮演了创造万物的角色,原始构造函数Function创造了function fn(){}(ES5中函数与构造函数并无区别).Object().Array().Number().String()等诸多构…
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂数据类型(即引用数据类型) Object类型 我们用的最多的引用类型就属object类型了,一般用来存储和传输数据是再好不过的.然,它的两种创建方式我们是否了解呢? 1.通过构造函数来创建 如: var obj = new Object(); 在js中的引用类型有个非常灵活的用法,可以动态的附加属性和赋值.…
1.Object对象 原型对象 原型是对象的一个属性,也就是prototype属性,每个对象都有这个内部属性,而且他本身也是一个对象. <script type="text/javascript"> Object.prototype.num= 10; alert("添加原型对象属性:"+ Object.num); Object.num = 20; alert("添加对象属性:"+Object.num); </script>…
自己闲的没事干,自己想通过js的了解写一个Function和Object之间的关系,可以肯定的是我写错了,但是希望可以有所启发. Function和Object Function.__proto__ Function.prototype Object.prototype…
In this lesson we'll use a handful of Ramda's utility functions to take a queryString full of name/value pairs and covert it into a JavaScript object so we can access those properties in a more useful way. Along the way, we'll build up a composition…
大家可以下载后用Vim 或者 Sublime Text等文本编辑器查看 以下代码均已折叠,点击“+“即可打开 一开始老师用C语言大作业的例子,写了个 Student 的结构以及相关操作 #include <iostream> #include "Student.h" using namespace std; void display (Student* s) { cout << "The current information of student:&…
http://bbs.csdn.net/topics/390772104#post-397284029…
写C或者JAVA习惯的人写JavaScript时可能会发现JavaScript并没有命名空间这一概念,当然如果没有接触过命名空间的程序猿(比如写js,PHP,Python)也可能对命名空间不关注或者不重视.这样的情况普遍存在,见过不少人写JavaScript时直接就全局变量的写,如: function a(){   }   function b(){   } 什么是命名空间呢?语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 .无论项目大小,如果一开始不严格按照命名空间来编写…
上一篇(JavaScript中你所不知道的Object(一))说到,Object对象有大量的内部属性,而其中多数和外部属性的操作有关.最后留了个悬念,就是Boolean.Date.Number.String.Function等有更多的内部属性,而它们分别是什么呢? 这些内部属性不能像Object的内部属性一样一言以蔽之,因为它们各有各的用处和特点.其中核心的部分自然是最特殊的对象,Function对象.我们先从简单的开始: [[PrimitiveValue]]: 值的类型是基础数据类型.所以所有…
写的很好,理解了很多,特此转发记录 转自:http://blog.csdn.net/tom_221x/archive/2010/02/22/5316675.aspx 在JavaScript中所有的对象都继承自Object原型,而Function又充当了对象的构造器,那么Funtion和Object到底有着什麽样的关系呢 ? 首先,一切都是对象. 由此可见,Object继承自己,Funtion继承自己,Object和Function互相是继承对方,也就是说Object和Function都既是函数也…
方法: hasOwnProperty isPrototypeOf propertyIsEnumerable hasOwnProperty 该方法用来判断一个对象中的某一个属性是否是自己提供的( 住要用在判断属性是原型继承的还是自己提供的 ) 语法: 对象.hasOwnProperty( '属性名' ) -> boolean isPrototypeOf 凡是看到 of 翻译成 的, 反过来翻译: prototype of obj, 翻译成 obj 的 原型 因此该方法的含义是: xxx 是 xxx…
<JavaScript高级程序设计>中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型 Object类型 创建对象 var person = new Object(); var person = {}; //二者效果是一样的,但使用对象字面量表示法定义对象时不会调用Object的构造函数 访问对象属性 点表示法 方括号表示法 person.name = ''; person['name'] = ''; // 方括号表示法能用变量来访问属性 var prop…
前言: JavaScript的面向对象是基于原形的,所有对象都有一条属于自己的原型链.Object与Function可能很多看Object instanceof Function , Function instanceof Object都为true而迷惑,所以首先看下对象的实例. 一.JS中所谓的实例 1. 如var a = new A();这样子通常的认为 “a为A函数的实例对象”. 2. new操作的过程是什么? 1.new创建一个空对象{}称为小C 2.然后将A.prototype放置到小…
今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象. 我们先来看最简单的两个代码,也是最容易理解的. function fn(){} var obj = {} console.log(fn instanceof Function)//true console.log(obj instanceof Object)//true console…
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中很常用,但…
这里先简单介绍一下我研究这个问题的初衷.起初我只是想研究一下原型链的基本思想.构造函数拥有prototype属性,指向它的prototype,而该构造函数的实例化对象则拥有一个[[prototype]]属性,或者说__proto__属性,同样指向该构造函数的prototype.所谓prototype,我个人把它理解为Java语言的类概念中的方法或是常量的集合,JS语言设计者之所以这么做,我想是因为考虑到对象的本质问题.对象的存储只涉及到其拥有的变量(这在对象序列化中体现的淋漓尽致),因为方法这种…
1.先看一个控制台的输出: instanceof 运算符字面意思是 左边是右边的一个实例吗? 但是这两条输出让人很困惑.Function 是 Object 的实例.Object 也是 Function 的实例. 学过静态语言的人看了一下就蒙了.A是B类 的实例,B又是A的实例.是不是很扯. 实际上instanceof 运算符的意识是:左边操作数的__proto__原型链上是否包括右边操作数的prototype. 也即如果有表达式:L instance R; 则运算结果是: L.__proto__…
console.log(Object.__proto__===Function.prototype); //true console.log(Object.prototype.__proto__); //null console.log(Function.__proto__===Function.prototype); //true 总结结果:              黑线:prototype       红线:__proto__ Object.prototype Function.proto…
我在写一篇图解prototype和__proto__的区别时,搜资料搜到了一个有意思的现象,下面这两个运算返回的结果是一样的: Function instanceof Object;//true Object instanceof Function;//true 这个是怎么一回事呢?要从运算符instanceof说起. 一.instanceof究竟是运算什么的? 我曾经简单理解instanceof只是检测一个对象是否是另个对象new出来的实例(例如var a = new Object(),a i…