javascript使用prototype让实例共享所有方法和属性。
1.对原型链有个初印象
var myFn = function(){
var arr = new Array();
arr.foo();//"foo"
arr.hasOwnProperty('foo');//false
};
Array.prototype.foo = function(){
return "foo";
};
通过hasOwnProperty发现arr没有foo方法,但是arr.foo()调用没有出错。这都归功于原型链。
函数调用的过程会顺着原型链查找。查找的顺序是:arr--〉Array.prototype --> Object.prototype,在这条链的末端Object中还是没有找到此函数,就会报错。
2.原型链的链接过程
(1)实例对象和创建对象的构造函数的prototype属性之间添加一个隐藏的链接,链接即__proto__
(2)构造函数被调用时,javascript会在后台将其链接起来形成原型链。
Array.prototype.foo = "foo";
var arr = new Array();
//因为arr.__proto__ = Array.prototype
arr.__proto__.foo;//"foo"
//调用方法1:使用原型链
arr.foo;//"foo"
//调用方法2:使用构造函数
arr.constructor.prototype;//"foo"
3.再看一个例子,加深对原型链的理解
var Foo = function(){};
Foo.prototype.x = 1;
var fooInstance = new Foo();
fooInstance.x; //1
得益于原型链,实例才可以共享或者继承通用方法和属性。
更多知识http://www.nowamagic.net/librarys/veda/detail/653
分享到:
相关推荐
jQuery 源码解读 jQuery 是一款非常流行的 JavaScript 库,以其简洁的语法和强大的功能深受开发者喜爱。本文将深入探讨 jQuery 的源码结构和执行流程,帮助你更好地理解和运用这个库。 首先,jQuery 的核心架构是...
### jQuery源码解析:深入理解jQuery JavaScript库 #### 核心概述 `jQuery JavaScript Library v1.8.3`是jQuery框架的一个版本,发布于2012年11月13日,由jQuery Foundation和其他贡献者共同开发,遵循MIT许可协议...
总结,jQuery源码的深度探索是一次宝贵的编程之旅,它让我们看到了一个优秀JavaScript库的设计思想和实现技巧。无论你是初学者还是经验丰富的开发者,深入理解jQuery,都将对你的职业生涯产生深远影响。
50%E4%B8%AAjquery文件很可能是部分jQuery源码的中文注解版,这对于理解其内部机制和优化代码具有极高价值。jQuery的核心特性包括选择器(selector)、事件处理、动画效果和Ajax操作,它的出现极大地简化了...
### jQuery源码分析—构造jQuery对象 #### 一、源码结构概览 根据所提供的文件内容,本节将深入分析如何构建jQuery对象及其核心构造逻辑。首先,让我们从整体上理解jQuery构造函数的设计思路。 ##### 总体结构 ...
### jQuery源码分析关键知识点详解 #### 一、前言 在深入了解jQuery源码之前,有必要先简要介绍一下jQuery的基本情况及其对JavaScript编程领域的重要意义。jQuery作为一个轻量级、功能丰富的JavaScript库,在Web...
### jQuery源码分析 #### 一、概述 jQuery作为一个卓越的JavaScript库,以其简洁高效的特性在前端开发领域占据了一席之地。与Prototype、YUI、Mootools等其他JavaScript库相比,jQuery更加注重实用性,去除了一些...
**四、深入理解jQuery源码** jQuery的源码结构清晰,通过模块化设计,便于理解和扩展。主要包含选择器引擎、DOM操作、事件处理、动画效果和Ajax等多个模块。通过阅读源码,开发者可以更深入地理解JavaScript和DOM的...
jQuery 是一个非常优秀的 JS 库,与 Prototype,YUI,Mootools 等众多的 Js 类 库相比,它剑走偏锋,从web开发的实用角度出发,抛除了其它 Lib中一些中看 但不实用的东西,为开发者提供了优美短小而精悍的类库。其使用...
在本文中,我们将通过对jQuery源码的核心部分进行分析,深入理解其工作原理和设计模式。 首先,jQuery 是一个函数,通常用 `$` 符号表示。当你调用这个函数,例如 `$(‘name_input’).val()`,它会执行函数内的逻辑...
在深入探讨《精通js+jquery源码》这本书中所涵盖的知识点之前,首先需要了解JavaScript和jQuery的基本概念。JavaScript是一种广泛应用于网页和网络应用的脚本语言,它为用户提供动态、交互式的网页体验。而jQuery则...
《锋利的jQuery源码》是一本深入剖析jQuery核心机制的书籍,对于任何希望深入了解这一广泛使用的JavaScript库的开发者来说,都是不可或缺的资源。jQuery以其简洁的语法、强大的功能和良好的浏览器兼容性,成为了Web...
最后,我们看到了 jQuery.prototype 的简化的实现方式。通常使用 document.querySelectorAll 来获取一组 DOM 元素,然后将这些元素作为数组存储在 jQuery 对象中,同时设置 jQuery 对象的 length 属性。在实现链式...
jQuery是世界上最流行的JavaScript库之一,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。在“jQuery实战源码”这个项目中,我们将深入理解jQuery的核心机制,通过详细的例子和逐步的教学来...
jQuery的核心之一是选择器引擎,这部分源码涉及到如何解析和执行CSS选择器。例如,`jQuery.fn.init = function( selector, context ) { ... }`是jQuery对象原型链上的初始化方法,它负责根据传入的选择器和上下文...
"1.8.3", init: function() { return this; }, test: function() { console.log('test');...同时,这也展示了JavaScript中`this`的灵活用法和原型继承的概念,这些都是深入理解JavaScript和jQuery源码的关键。
《锋利的jQuery源码》是一本专注于深入解析jQuery库的书籍,其第二版更是针对jQuery的最新版本进行了详尽的分析。这本书的核心是通过实际案例来帮助读者理解并掌握jQuery的内部工作原理,从而提升JavaScript开发技能...