`

javascript 错误的继承方式

 
阅读更多
var parent = {t:1,m:2,}
parent.test=function(){
	console.log("ss");
}

var son = {};
//使用jquery的方式继承
$.extend(son,parent);
son.test = function(){
//调用父类方法
//此处调用的还是son.test方法,会内存溢出
	son.test.apply(parent);
};
son.test();



var son = {};
//使用jquery的方式继承
$.extend(son,parent);
son.test = function(){
//调用父类方法
//此处的prototype未定义,调用出错
//Cannot read property 'test' of undefined 
//__proto__: 是原始的Object,只有原始object对象的方法
	parent.prototype.test.apply(parent);
};
son.test();

分享到:
评论

相关推荐

    JavaScript中继承原理与用法实例入门

    在JavaScript中,由于其动态类型和基于原型的特性,实现继承的方式比传统的面向对象语言更为灵活,但也相对复杂。本文将深入探讨JavaScript中的继承原理与用法,并通过实例进行讲解。 首先,JavaScript的对象由两...

    JavaScript 继承详解(三)

    在JavaScript中实现继承有多种方法,其中构造函数和原型链的方式是较为传统的一种,但在实际应用中存在一些问题和陷阱。本章节将深入分析这些常见的问题,并提出相应的解决方案。 首先,我们回顾一下使用构造函数和...

    详解Javascript继承的实现_.docx

    ES6引入了`class`关键字,提供了更符合传统面向对象编程语法的继承方式: ```javascript class Employee { constructor(name, salary) { this.name = name; this.salary = salary; } getName() { return ...

    JavaScript 常见的继承方式汇总

    本文主要汇总JavaScript常见的继承方式,包括原型链机制。 ### 1. 原型链机制 原型链是JavaScript实现继承的核心机制。在JavaScript中,每个函数(即构造函数)都有一个`prototype`属性,它指向一个原型对象。原型...

    深入分析javascript中的错误处理机制

    开发者还可以创建自定义错误类型,通过继承`Error`构造函数实现: ```javascript function UserError(message) { this.message = message; this.name = "UserError"; } UserError.prototype = new Error(); User...

    由Javascript的继承引发的:抽象类、接口、多态,甚至是类型转换!

    在标题“由JavaScript的继承引发的:抽象类、接口、多态,甚至是类型转换!”中,我们可以深入探讨这些概念在JavaScript中的应用和实现。 首先,让我们从继承开始。JavaScript的继承基于原型链(prototype chain)...

    javascriptAPI,javascript参考资料,javascript

    ES6 引入了类和更直观的继承方式。 7. **异步编程**:JavaScript 是单线程的,但通过事件循环和回调函数、Promise、async/await 实现了非阻塞的异步处理。 8. **模块系统**:ES6 引入了模块系统,通过 import 和 ...

    JavaScript权威指南(JavaScript犀牛书一本)

    2. **对象和原型**:深入探讨了JavaScript的面向对象特性,包括对象字面量、构造函数、原型链、继承机制等,这是理解JavaScript灵活性的关键。 3. **作用域和闭包**:解析了JavaScript中的变量作用域规则以及闭包的...

    JavaScript内核系列 pdf

    掌握原型链的工作方式,以及如何使用构造函数、call()、apply()和bind()实现继承,对于JavaScript面向对象编程至关重要。 五、闭包与作用域 闭包是JavaScript中一种强大的特性,允许函数访问并操作其词法作用域内的...

    JavaScript学习指南 高清 PDF

    原型链是JavaScript实现继承的一种方式,通过__proto__属性或Object.getPrototypeOf方法可以访问对象的原型。 3. **作用域与闭包**:作用域决定了变量在哪些代码块中可被访问,有全局作用域和局部作用域。闭包是一...

    JavaScript_Core.pdf

    原型链是JavaScript实现继承的方式,每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象。 5. **事件与事件处理**:JavaScript处理用户交互的主要方式是通过事件。事件处理程序可以使用DOM元素的`...

    现代JavaScript教程

    原型链是JavaScript实现继承的方式,理解这一机制能帮助开发者更好地利用面向对象编程。 三、闭包与作用域 闭包是JavaScript的一个重要特性,它允许函数访问并操作其词法作用域内的变量,即使该函数在其外部被调用...

    javascript in action:javascript 实战源码

    5. **原型与继承**:JavaScript使用原型链实现对象继承,掌握如何通过构造函数、原型对象和Object.create方法实现继承关系。 6. **面向对象编程**:了解如何通过类(class)和实例(instance)进行面向对象编程,...

    JavaScript 5.CHM

    原型继承、原型式继承、组合继承、寄生式继承、寄生组合式继承是JavaScript实现继承的五种主要方式,理解它们的区别和应用场景是提升编程能力的关键。 JavaScript 5还包含了数组的方法,如push、pop、shift、...

    Javascript玩转继承(三)

    总结来说,JavaScript的继承方式多种多样,包括本文提到的非主流的实例继承和拷贝继承,以及常用的混合继承。在实践中,开发者应根据具体需求选择合适的继承策略,既要考虑代码的可读性和维护性,也要注意性能优化。...

    《十个 JavaScript 中易犯的小错误》

    常见错误一:对于this关键词的不正确引用 ...常见错误七:原形继承问题 常见错误八:为实例方法创建错误的指引 常见错误九:用字符串作为setTimeout的第一个参数 常见错误十:忽略“strict mode”的作用

    JavaScript学习帮助文档_JavaScript学习帮助文档_javascript_

    ES6引入了类(class)的概念,使得面向对象编程更加清晰,但JavaScript本质上仍是基于原型的继承。 数组在JavaScript中是特殊类型的对象,可以存储多个值。数组方法如push、pop、shift、unshift、slice、splice等...

    Head First Javascript源码

    《Head First JavaScript源码》是一本深入浅出的JavaScript学习资料,它通过直观且易于理解的方式,引导读者探索JavaScript这门强大的脚本语言。源码是编程学习中的重要组成部分,它能帮助我们直观地理解代码的运行...

    JavaScript可扩展的自定义错误可以接收消息或Error对象

    标准的JavaScript Error对象提供了一种处理运行时错误的方式,但有时我们可能需要创建自定义错误类型来更好地适应特定的业务需求。标题"JavaScript可扩展的自定义错误可以接收消息或Error对象"表明我们要讨论如何...

    JavaScript继承与多继承实例分析

    这种通过原型链实现的继承是JavaScript中实现继承的主要方式。 在实例分析部分,作者首先通过一个名为var inherit = function(objBase)的函数来演示如何实现继承。该函数通过三个步骤实现继承:定义一个构造函数F,...

Global site tag (gtag.js) - Google Analytics