再论prototype】的更多相关文章

前段时间曾经写过一篇关于prototype原型的文章(http://www.cnblogs.com/ttcc/p/3751604.html),但是对于JS的核心之一,还是应该多多熟悉才行,常回过头来看看总有新味道.下面的内容个人很清晰,但并不是出自本人之手(原文链接本文最后),借花献佛收藏了: 用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近…
想必经常写js的人必然会经常性的用到prototype这个属性,我写这篇文章倒不是自己对prototype这个属性理解有多深刻,相反是因为自己理解肤浅,想通过写文章来加深理解.废话不多说.下面总结一下prototype的特征吧,也请高手砖头拍轻点. 特征一:“对象”是不可访问prototype属性,只有“类型”才可以访问portotype属性. var x=0; var y='1'; var z=[]; var w={}; var u=function(){} // 以上对象类型中,仅有u是有p…
function a(){                 this.name="aaa";             }             function b(){                 this.age=100;             } 我们定义两个function,当我们实例化的对象的时候的操作是这样的 var A=new a(); 1.创建一个对象(有constructor属性及[[Prototype]]属性),根据ECMA,其中[[Prototype]]属…
原型的概念 真正理解什么是原型是学习原型理论的关键.很多人在此产生了混淆,没有真正理解,自然后续疑惑更多. 首先,我们明确原型是一个对象,其次,最重要的是, Every function has a prototype property and it contains an object 这句话就是说,每个函数都有一个属性叫做原型,这个属性指向一个对象. 也就是说,原型是函数对象的属性,不是所有对象的属性,对象经过构造函数new出来,那么这个new出来的对象的构造函数有一个属性叫原型.明确这一点…
说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Function,Array,Date,... 很多时候我们都需要通过判断变量的数据类型来进行下一步操作,下面我们介绍常用的三种方法: ① typeof typeof 返回一个表示数据类型的字符串,返回结果包括:number.boolean.string.object.undefined.fu…
本文尝试阐述Js中原型(prototype).原型链(prototype chain)等概念及其作用机制.上一篇文章(图解Javascript上下文与作用域)介绍了Js中变量作用域的相关概念,实际上关注的一个核心问题是:“在执行当前这行代码时Js解释器可以获取哪些变量”,而原型与原型链实际上还是关于这一问题. 我们知道,在Js中一切皆为对象(Object),但是Js中并没有类(class):Js是基于原型(prototype-based)来实现的面向对象(OOP)的编程范式的,但并不是所有的对象…
jQuery对象是什么,举个例子,$('#id') 返回的就是jQuery对象,这个东西是整个jQuery的核心所在,所以我先来分析它. var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); }; ...…
很快就要从新浪离职了,最近心情比较轻松,抽点空整理一下构造函数和原型的机理. 我们都知道,在经典设计模式中我们最常用的就是工厂模式.构造函数模式.原型模式这几种,听起来‘模式’好像很高大上的样子,实际上我们在日常写js代码中会经常用到. 简单的说,工厂模式就是我们平常写的一个个函数,当要完成某项功能时,就一遍一遍调用这个函数.如: function add(a,b){ return a+b; } 这是一个很简单的代码,完成的是一个很简单的两数相加的功能,当我们需要两数相加的计算时,调用这个函数就…
  jQuery是目前使用最广泛的前端框架之一,有大量的第三方库和插件基于它开发.为了避免全局命名空间污染,jQuery提供了jQuery.noConflict()方法解决变量冲突.这个方法,毫无疑问,非常有效.遗憾的是,jQuery的官方文档对该方法的描述不够清晰,许多开发者并不清楚当他们调用jQuery.noConflict()时,究竟发生了什么,从而导致在使用时出现了许多问题.尽管如此,jQuery.noConflict()背后实现原理依然值得Web开发者学习掌握,成为解决类似全局命名空间…
JS中原型链,说简单也简单. 首先明确: 函数(Function)才有prototype属性,对象(除Object)拥有__proto__. 首先,我画了一张图. 所谓原型链,指的就是图中的proto这一条指针链! 原型链的顶层就是Object.prototype,而这个对象的是没有原型对象的. 可在chrome的控制台里面输入: Object.__proto__ 输出是: function Empty() {} 原型链,如此而已. 对于新人来说,JavaScript的原型是一个很让人头疼的事情…