function po(){
/// this.age ="super age";
}
po.prototype.age ="super prototype age";
function func() {
//this.age='name has been changed.';
}
//func.prototype.age='prototype of func';
func.prototype = new po();
var f = new func();
alert(f.age); // 输出super prototype age
alert(func.prototype.age); // 输出super prototype age
这段代码会弹出两次super prototype age,原因如下:
对象寻找属性时,如果自己没有这个属性,会在构造函数的propotype所指向/引用的对象中找,看能否找到同名属性,如果构造函数的prototype没有还会找prototype对象的构造函数的prototype对象,
如果找到,就会读取它的值并返回.(这个过程会持续向上,直到持续到Object对象为止,即所谓原型方式的继承).
注意:以上是读,如果写一个属性的话就是直接给这个对象定义了一个属性,读写不对等,在<javascript权威指南>
有很好说明.
本贴内容来自于<领悟 JavaScript 中的面向对象>.
to robbin :
由于yiding_he写道"注:读完本文后请务必接着看完所有回复!"这样对于想要得到其中重要内容的读者来说太花时间了,所以我把几位网友(yiding_he,xieye,afcn0)的观点总结了一下,用于方便想要知道javaScript中的new的含义的新读者.也希望javaeye能够上一套wiki,方便大家对知识进行系统总结.论坛这种需要看完所有回帖才能得到知识的方式还是比不了wiki的方式.
分享到:
相关推荐
在JavaScript中,`new`操作符是一个至关重要的概念,它用于通过构造函数创建新的对象实例。构造函数是一种特殊类型的函数,通常用来初始化新创建的对象。接下来我们将深入探讨`new`操作符的工作原理,并通过示例进行...
和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象。 但在 javascript 中,万物皆对象,为什么还要通过 new 来产生对象? 本文将带你一起来...
JavaScript中的new运算符是用于创建对象的一个重要关键字。它允许我们从一个构造函数中创建一个特定类型的对象。new运算符在执行时会执行以下步骤: 1. 创建一个新的空对象; 2. 将新对象的原型链(__proto__属性)...
本文给大家详细介绍了下javascript中new关键字的使用方法,以及javascript 使用new关键字的区别,有需要的小伙伴可以参考下。
javascript中的new是一个语法糖,对于学过c++,java 和c#等面向对象语言的人来说,以为js里面是有类和对象的区别的,实现上js并没有类,一切皆对象,比java还来的彻底 new的过程实际上是创建一个新对象,把新象的...
在JavaScript中,定义数组有两种常见的方法:使用字面量方式定义数组(var arr=[])和使用构造函数new Array()。这两种方式在功能上看似相同,但在实际使用中,它们之间存在一些细微的差别。下面将详细介绍这两种...
在JavaScript中,数组和对象是两种非常基础且重要的数据结构,它们被广泛应用于各种场景,如数据存储、逻辑处理和对象表示。这篇文章将深入探讨这两种数据类型,以及相关的操作和工具。 **一、数组** 数组在...
在JavaScript中,new运算符是一个非常重要的概念,它用于创建一个实例对象。要理解JavaScript中new的运行机制,首先需要了解JavaScript中函数、原型、原型链、this等基础知识。 首先,JavaScript中函数不仅仅可以被...
Get Programming with JavaScript Next New features of ECMAScript 2015, 2016, and beyond 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除查看此书详细信息请在美国亚马逊官网搜索此书
3. **JavaScript调用COM组件**:在JavaScript中,可以通过`new ActiveXObject(Progid)`来实例化一个Delphi编写的COM组件,其中`Progid`是组件的程序标识符。然后,可以调用该对象的公开方法和属性。 4. **Delphi...
这通常涉及到在JavaScript中调用C++编写的函数,以利用C++的高性能和低级特性。本文将深入探讨如何实现这一目标,特别是在MFC(Microsoft Foundation Classes)框架下。 首先,理解基础原理:JavaScript是一种解释...
### JavaScript中的`new`操作符是否仍需使用? 在探讨`new`操作符在现代JavaScript开发中的使用情况之前,我们先来明确一下`new`的基本功能。`new`操作符主要用于实例化对象,通过调用构造函数来创建一个新的对象...
本项目是基于JavaScript的new_kpi KPI管理系统设计源码,包含1386个文件,其中包括320个JavaScript文件、281个PNG图片文件、209个CSS文件、157个HTML文件、75个JAR文件、66个JPG图片文件、66个LESS文件、40个Java...
JavaScript中的JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但也使用了类似于C家族语言,包括C、C++、C#、Java、JavaScript、...
在JavaScript中,可以通过构造函数或类来创建对象,并通过定义方法来隐藏具体的实现细节。此外,ES6引入了类的概念,进一步增强了抽象的能力。 **示例代码:** ```javascript class USBDevice { constructor(name)...
本项目是基于Javascript开发的New Bing AI对话插件,包含88个文件,其中包括46个JavaScript脚本文件、22个JSON配置文件、8个HTML页面文件、7个CSS样式表文件、1个gitignore文件、1个LICENSE文件和1个Markdown文档...