`
rayln
  • 浏览: 424219 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Prototype, Constructor的使用和理解

 
阅读更多
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 是一种基于原型的面向对象编程语言,它利用 prototype 和 constructor 两个核心概念来实现对象的继承和原型链继承。在 JavaScript 中,几乎所有的数据类型都有一个 constructor 属性,它指向创建这个数据...

    JS:typeof instanceof constructor prototype区别

    本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...

    深入分析js中的constructor和prototype

    在JavaScript中,`constructor`和`prototype`是两个关键概念,它们构成了JavaScript面向对象编程的基础。理解这两个概念对于深入学习JavaScript至关重要。 首先,`constructor`是函数的一个属性,它指向创建该对象...

    prototype文件以及使用说明.rar

    本压缩包文件“prototype文件以及使用说明.rar”显然提供了关于如何利用和理解`prototype`的相关资料,下面我们将深入探讨`prototype`的相关知识点。 1. **对象原型与原型链** 每个JavaScript对象都有一个内部属性...

    详解帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

    JavaScript中的`prototype`、`__proto__`和`constructor`是理解JavaScript面向对象编程的关键概念。这篇文章通过图解的方式深入浅出地解析了这三个概念之间的关系。 首先,`__proto__`属性是对象独有的,它指向对象...

    JavaScript中prototype的使用

    除了使用构造函数和`prototype`,JavaScript还提供了`Object.create()`方法来创建一个新对象并将其`__proto__`设置为指定的对象。此外,ES6引入的类(class)语法虽然更符合传统的面向对象编程风格,但在底层仍然...

    javascript new后的constructor属性.docx

    ### JavaScript中的`new`操作与`constructor`属性详解 #### 一、`new`操作符的理解 在JavaScript中,`new`操作符被用于创建一个...了解并熟练掌握`constructor`属性的用法对于深入理解和使用JavaScript语言至关重要。

    图解prototype、proto和constructor的三角关系

    在JavaScript中,prototype、proto(或__proto__)和constructor是理解对象继承和构造函数之间关系的关键概念。首先,我们来看它们之间的三角关系。 **构造函数(Constructor)** 构造函数是一种特殊的函数,用于...

    JavaScript中几个重要的属性(this、constructor、prototype)介绍

    理解`this`、`constructor`和`prototype`的使用,可以让我们更有效地编写JavaScript代码。例如,我们可以向内置对象的原型上添加方法来扩展它们的功能。向`Array.prototype`添加`min`方法就是一个很好的例子。然而,...

    prototype小例子

    通过理解和熟练使用`prototype`,我们可以创建出更加复杂且可复用的代码结构。同时,了解`__proto__`、`constructor`以及`Object.create`等相关的知识点,能帮助我们更好地掌握JavaScript的原型体系。在实际编程中,...

    instanceof 和 prototype 关系

    在JavaScript中,`instanceof`和`prototype`是两个非常重要的概念,它们涉及到对象的类型检测和继承机制。本文将深入探讨这两个关键字的...了解和掌握这两个概念,对于理解和使用JavaScript的面向对象特性至关重要。

    js遍历属性 以及 js prototype 和继承

    在JavaScript中,遍历属性、理解`prototype`和掌握继承机制是编程中不可或缺的基本技能。本文将深入探讨这些概念,并通过实例来加深理解。 首先,让我们来看如何遍历JavaScript对象的属性。JavaScript提供了多种...

    prototype自己做的一个例子

    通过理解和巧妙地运用`prototype`,我们可以构建出更加灵活和高效的代码结构。在压缩包`myJs`中,可能包含了实现上述概念的示例代码,通过分析和学习这些代码,可以进一步巩固对`prototype`的理解。

    JavaScript的prototype

    理解并熟练掌握`prototype`,对于编写高效、可维护的JavaScript代码至关重要。通过`prototype`,开发者可以构建复杂的应用程序架构,利用原型链实现方法的复用和对象的层次结构。在实际开发中,结合`Object.create()...

    setter-on-constructor-prototype.rar_The Next

    在JavaScript编程中,"setter-on-constructor-prototype.rar_The Next"这个主题涉及到对象属性的访问和修改,尤其是关于构造函数原型链上的setter方法。在描述中提到的"Get the name of the next property of Result...

    了解JavaScript中的prototype (实例)

    JavaScript中的`prototype`是理解面向对象编程的关键概念之一。它是一种机制,允许对象共享属性和方法,从而实现代码复用。...理解`prototype`以及相关的原型链、继承和对象创建方式,对于深入学习JavaScript至关重要。

    es6 prototype

    在本教程中,我们将深入探讨ES6中的原型扩展以及如何使用`XExtends Core v1.0.0`提供的核心功能,如`core.js`和`core.min.js`。 ### 1. 原型链(Prototype Chain) 在JavaScript中,每个对象都有一个内部属性`[...

    深化浅析JavaScript中的constructor_.docx

    深化浅析JavaScript中的constructor_ constructor 属性是 JavaScript 中的一种特殊属性,它返回对创建此对象的数组函数的引用。...我们需要正确地理解和使用这个属性,以便更好地编写 JavaScript 代码。

    理解Javascript_11_constructor实现原理

    在理解了JavaScript中的对象模型和constructor属性的实现原理之后,我们可以通过这些知识来更好地理解JavaScript的工作机制。这包括如何利用原型链来实现对象的继承,以及如何通过constructor属性来追踪对象的构造...

    javascript中类和继承(代码示例+prototype.js)

    本文将深入探讨JavaScript中的类和继承,并结合`prototype.js`文件中的示例进行解析。 ### 类的概念与模拟 在JavaScript中,我们通常使用函数来模拟类的行为。一个函数可以看作是一个类的定义,通过`new`关键字来...

Global site tag (gtag.js) - Google Analytics