`
daxiong921
  • 浏览: 44702 次
  • 性别: Icon_minigender_1
  • 来自: 龙岩
社区版块
存档分类
最新评论

Javascript Prototype 自我小结

阅读更多
javascript的继承是通过prototype这个属性实现的。

每个javascript的变量都是一个对象,每个对象都有它自己的 原型(prototype),而每个对象默认的原型是 Object,和大多数面向对象语言一样,对象的祖先是 Object。

我们使用js对象的时候,通过 对象名.属性 来调用。当对象本事不包含该属性的时候,会去查找对象的 原型(Prototype),如果原型里头包含了属性,那么就调用该属性的值。如果对象prototype中依然不包含该属性,那么这次调用返回的值是 undefined。

如果修改一个对象的prototype呢?参照《javascript语言精粹》中是这么修改的
if(typeof Object.beget !== 'function') {
   Object.beget = function(o) {
      var F = function(){};
      F.prototype = o;
      return new F();
   }
}

//这么调用 beget 修改 prototype

var newObj = Object.beget(oldObj);




我们可以通过使用 对象.hasOwnProperty('属性')方法来测试该属性是不是真正属于该对象。
分享到:
评论

相关推荐

    JavaScript函数学习总结以及相关的编程习惯指南

    JavaScript函数学习总结以及相关的编程习惯指南 在JavaScript中,函数是一种强大的工具,它们不仅可以作为代码块执行,还可以作为值传递。在深入探讨函数之前,我们先来了解两个基础概念:`null` 和 `undefined`。 ...

    Javascript匿名函数的一种应用 代码封装

    JavaScript匿名函数的应用主要...总结来说,JavaScript的匿名函数是实现代码封装和模拟私有变量、方法的重要工具,同时也为实现继承提供了基础。通过深入理解这些概念,JS开发者能够编写出更优雅、更易于维护的代码。

    前端开发面试自我的介绍.doc

    本文档总结了前端开发面试的自我介绍,涵盖了 JavaScript 类型转换、类的创建、继承和闭包、get 和 post 请求的区别、事件绑定和事件冒泡机制、图片轮播脚本、图片加载优化、Servlet 生命周期、模板引擎 Velocity 等...

    Jqurey 源码分析

    首先,jQuery 源码以一个自调用匿名函数的形式开始,这种结构在JavaScript中称为自我执行函数表达式(Self-executing Anonymous Function Expression)。这样做主要有两个目的:一是创建一个独立的作用域,避免污染...

    LeetCodeLife:我的LeetCode进阶之路

    例如,你可以学习如何使用JavaScript的`Array.prototype`方法(如`map()`、`filter()`和`reduce()`)来处理数组数据,或者利用`String.prototype`方法进行字符串的拼接、查找和替换。 接着,进阶到数据结构的学习。...

    Boss-Up:鬼骑横轴游戏,你可以尽可能提升你的老板级别

    总结来说,Boss-Up是一款融合了JavaScript编程技巧和创新玩法的游戏。它不仅提供了一个娱乐的平台,也是一本生动的JavaScript编程实战教材。玩家在享受游戏的同时,也能深入理解编程原理,提高自己的技术能力。无论...

    Codejam:我的 Google Codejam 解决方案

    JavaScript中的`Array.prototype.permute`方法可以生成全排列,结合问题的特定约束,即可得出答案。 2. **问题B - 大案例挑战**: 对于复杂度较高的问题,比如涉及到图论或动态规划的题目,可以利用JavaScript的...

    php程序员应具有的7种能力小结

    熟悉阶段应熟悉JavaScript的高级特性,如函数、正则表达式等,并能利用jQuery或Prototype等框架简化开发。在很熟悉的阶段,应能使用面向对象的思想编写JavaScript代码,熟练使用Ajax技术和各种前端框架来实现复杂的...

    leetcode答案-leetcode-js:记录leetcode题目解题思路及答案

    总结,"leetcode-js"是一个宝贵的资源,它不仅提供了LeetCode题目的JavaScript解决方案,也是学习和提升算法思维的有效途径。对于系统开源的倡导者,分享这样的资源有助于整个社区的成长和进步。通过深入研究和实践...

    esm交互低保真.rar

    总结起来,这个压缩包可能包含了一个使用ESM实现的低保真前端交互设计项目,涵盖了模块化编程、前端开发流程、交互设计原则等多个方面的知识。对于学习和实践前端开发,尤其是理解和运用ESM的开发者来说,这是一个有...

    2018-web前端的自我介绍-优秀word范文 (5页).pdf

    JavaScript是前端开发的核心语言,许多框架如jQuery、YUI、Prototype、Dojo、Ext.js和MooTools等简化了DOM操作和事件处理。jQuery中的`$()`函数是其核心API,用于选择和操作DOM元素。`window.onload`事件在所有资源...

    JavaScriptArguments:了解特殊关键字“ arguments”

    总结一下,JavaScript的"arguments"对象提供了一种灵活的方式来处理函数调用时的参数,不论参数数量是否预知。通过arguments.length,我们可以获取参数个数,arguments.callee则为函数自我引用提供了可能。然而,...

    jQuery 插件封装的方法

    总结来说,jQuery插件封装是通过扩展`jQuery.fn`来实现的,利用自我执行函数保护`$`符号,理解`this`关键字的上下文,保持链式调用的流畅性,以及为插件提供默认值和可配置选项。掌握这些技巧,开发者可以构建出强大...

Global site tag (gtag.js) - Google Analytics