JavaScript中Prototype的使用和实例
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
<script>
(function(){
console.log("=========prototype的用法和误区=========");
var A = function(){};
A.prototype.A1 = function(){
console.log("A1");
};
A.prototype.A2 = [1,2,3];
A.prototype.A3 = 1;
var a1 = new A();
var a2 = new A();
a1.A2.push(4);
a1.A3 = 2;
console.log(a1.A3);//2
console.log(a2.A3);//1
console.log(a1.A2);//[1,2,3,4]
console.log(a2.A2);//[1,2,3,4]
/**
由于prototype是模版不是对象拷贝而是链接的方式
所以使用delete a1.A3, a1.A3并不会删除, 而是重新链上上一个值
**/
delete a1.A3;
console.log(a1.A3);//1
console.log(a2.A3);//1
delete a1.A2;
console.log(a1.A2);//[1,2,3,4]
console.log("=========以下是继承部分=========");
var B = function(){};
B.prototype = new A();
B.prototype.A3 = 10;
var b1 = new B();
console.log(b1.A3);//10
console.log("=========以下是constructor部分=========");
var C = function(){};
C.prototype = {
C1 : function(){}
};
var c = new C();
console.log(a1.constructor ===A);//true
/**
C.prototype = {
C1 : function(){}
};
等同于:
C.prototype = new Object({
C1 : function(){}
});
所以: c.constructor===C 为 false
**/
console.log(c.constructor===C);//false
console.log(c.constructor===Object);//true
console.log(C.prototype.constructor===Object);//true
})();
</script>
分享到:
相关推荐
JavaScript 是一种基于原型的面向对象编程语言,它利用 prototype 和 constructor 两个核心概念来实现对象的继承和原型链继承。在 JavaScript 中,几乎所有的数据类型都有一个 constructor 属性,它指向创建这个数据...
本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...
在JavaScript中,`constructor`和`prototype`是两个关键概念,它们构成了JavaScript面向对象编程的基础。理解这两个概念对于深入学习JavaScript至关重要。 首先,`constructor`是函数的一个属性,它指向创建该对象...
本压缩包文件“prototype文件以及使用说明.rar”显然提供了关于如何利用和理解`prototype`的相关资料,下面我们将深入探讨`prototype`的相关知识点。 1. **对象原型与原型链** 每个JavaScript对象都有一个内部属性...
JavaScript中的`prototype`、`__proto__`和`constructor`是理解JavaScript面向对象编程的关键概念。这篇文章通过图解的方式深入浅出地解析了这三个概念之间的关系。 首先,`__proto__`属性是对象独有的,它指向对象...
除了使用构造函数和`prototype`,JavaScript还提供了`Object.create()`方法来创建一个新对象并将其`__proto__`设置为指定的对象。此外,ES6引入的类(class)语法虽然更符合传统的面向对象编程风格,但在底层仍然...
### JavaScript中的`new`操作与`constructor`属性详解 #### 一、`new`操作符的理解 在JavaScript中,`new`操作符被用于创建一个...了解并熟练掌握`constructor`属性的用法对于深入理解和使用JavaScript语言至关重要。
在JavaScript中,prototype、proto(或__proto__)和constructor是理解对象继承和构造函数之间关系的关键概念。首先,我们来看它们之间的三角关系。 **构造函数(Constructor)** 构造函数是一种特殊的函数,用于...
理解`this`、`constructor`和`prototype`的使用,可以让我们更有效地编写JavaScript代码。例如,我们可以向内置对象的原型上添加方法来扩展它们的功能。向`Array.prototype`添加`min`方法就是一个很好的例子。然而,...
通过理解和熟练使用`prototype`,我们可以创建出更加复杂且可复用的代码结构。同时,了解`__proto__`、`constructor`以及`Object.create`等相关的知识点,能帮助我们更好地掌握JavaScript的原型体系。在实际编程中,...
在JavaScript中,`instanceof`和`prototype`是两个非常重要的概念,它们涉及到对象的类型检测和继承机制。本文将深入探讨这两个关键字的...了解和掌握这两个概念,对于理解和使用JavaScript的面向对象特性至关重要。
在JavaScript中,遍历属性、理解`prototype`和掌握继承机制是编程中不可或缺的基本技能。本文将深入探讨这些概念,并通过实例来加深理解。 首先,让我们来看如何遍历JavaScript对象的属性。JavaScript提供了多种...
通过理解和巧妙地运用`prototype`,我们可以构建出更加灵活和高效的代码结构。在压缩包`myJs`中,可能包含了实现上述概念的示例代码,通过分析和学习这些代码,可以进一步巩固对`prototype`的理解。
理解并熟练掌握`prototype`,对于编写高效、可维护的JavaScript代码至关重要。通过`prototype`,开发者可以构建复杂的应用程序架构,利用原型链实现方法的复用和对象的层次结构。在实际开发中,结合`Object.create()...
在JavaScript编程中,"setter-on-constructor-prototype.rar_The Next"这个主题涉及到对象属性的访问和修改,尤其是关于构造函数原型链上的setter方法。在描述中提到的"Get the name of the next property of Result...
JavaScript中的`prototype`是理解面向对象编程的关键概念之一。它是一种机制,允许对象共享属性和方法,从而实现代码复用。...理解`prototype`以及相关的原型链、继承和对象创建方式,对于深入学习JavaScript至关重要。
在本教程中,我们将深入探讨ES6中的原型扩展以及如何使用`XExtends Core v1.0.0`提供的核心功能,如`core.js`和`core.min.js`。 ### 1. 原型链(Prototype Chain) 在JavaScript中,每个对象都有一个内部属性`[...
深化浅析JavaScript中的constructor_ constructor 属性是 JavaScript 中的一种特殊属性,它返回对创建此对象的数组函数的引用。...我们需要正确地理解和使用这个属性,以便更好地编写 JavaScript 代码。
在理解了JavaScript中的对象模型和constructor属性的实现原理之后,我们可以通过这些知识来更好地理解JavaScript的工作机制。这包括如何利用原型链来实现对象的继承,以及如何通过constructor属性来追踪对象的构造...
本文将深入探讨JavaScript中的类和继承,并结合`prototype.js`文件中的示例进行解析。 ### 类的概念与模拟 在JavaScript中,我们通常使用函数来模拟类的行为。一个函数可以看作是一个类的定义,通过`new`关键字来...