所有的构造器都是对象,而并非所有的对象都是构造器.每个构造器都有一个用来实现原型继承、共享属性的Prototype属性。对象通过new 表达式创建;比如,new String("A String") 创建了一个String对象。没有通过new而直接调用构造器将有返回值,返回的类型将取决于构造器。例如String("A String")产生一个原始的类型的字符串而不是一个对象。
ECMAScript支持基于原型的继承。每个构造器都有一个与之关联的原型,而且通过此构造器创建的对象都有一个与构造器原型关联的隐式引用(称为,对象的原型)。进一步说,一个原型可能有一个对其原型的非空隐式引用……,这被称为,原型链。当一个引用指向对象的属性,这个引用指向原型链中的第一个对象的以此为名的属性。换句话说,第一次,这个直接关联的对象,将为这个属性被检查。如果这个对象包含以此为名的属性,这个属性就是引用指向的属性。如过这个对象不包含以此为名的属性,那么这个对象的原型将会被继续检查……
原文:
Object
ECMAScript does not contain proper classes such as those in C++, Smalltalk, or Java, but rather,supports constructors which create objects by executing code that allocates storage for the objects and initialises all or part of them by assigning initial values to their properties. All constructors are objects,but not all objects are constructors. Each constructor has a Prototype property that is used to implement prototype-based inheritance and shared properties. Objects are created by using constructors in new expressions; for example, new String("A String") creates a new String object. Invoking a constructor without using new has consequences that depend on the constructor. For example,String("A String") produces a primitive string, not an object.
ECMAScript supports prototype-based inheritance. Every constructor has an associated prototype, and every object created by that constructor has an implicit reference to the prototype (called the object's prototype) associated with its constructor. Furthermore, a prototype may have a non-null implicit reference to its prototype, and so on; this is called the prototype chain. When a reference is made to a property in an object, that reference is to the property of that name in the first object in the prototype chain that contains a property of that name. In other words, first the object mentioned directly is examined for such a property; if that object contains the named property, that is the property to which the reference refers; if that object does not contain the named property, the prototype for that object is examined next; and so on.
Javascript 对象的解释_js面向对象
时间: 2024-09-30 14:02:50
Javascript 对象的解释_js面向对象的相关文章
JavaScript 继承使用分析_js面向对象
深入学习javascript继承之前,先了解下面的几个概念: 父类:被继承的类 子类:由继承得来的类 超类:也就是父类 抽象类:一般不用来实例化的类,它的用途是用来给其他类继承. 基类:提供给其他类可以继承的类 派生类:由基类继承而来的类 javascript对象继承通常有下面的5种方式: 1.对象冒充 2.call()方式 3.apply()方式 4.原型链 5.混合方式 A.对象冒充 所谓对象冒充,就是新的类冒充旧的类(旧的类必须采用构造函数方式),从而达到继承目的. eg.1 复制代码 代
面向对象的javascript(笔记)_js面向对象
一.引用 复制代码 代码如下: //产生一个数组对象 var items = new Array('1','2','3'); //使一个引用指向该对象 var itemRef = items; items.push('4'); //items 与 itemRef指向同一对象 alert(items.length === itemRef.length); // 修改对象会产生一个新对象 var item = 'test'; var itemRef = item; item+='ing'; //此时
javascript 面向对象编程 聊聊对象的事_js面向对象
先看一下JSON(javascript object notation)对象,JSON是一种脚本操作时常用的数据交换格式对象,相对于XML来说JSON是一种比较轻量级的格式,在一些intelligence的IDE中还可以方便的通过点操作JSON对象中的成员. JSON是一种键/值对方式来描述内部成员的格式,其内部成员可以是几乎任何一种类型的对象,当然也可以是方法.类.数组,也可以是另外一个JSON对象. var student = { Name: "张三", Age: 20
JavaScript 类型的包装对象(Typed Wrappers)_js面向对象
例如: new Boolean(false) 会返回一个对象,该对象有一个 valueOf 方法会返回被包装的值.这其实完全没有必要,并且有时还令人困惑.不要使用 new Boolean. new Number 或 new String. 此外也请避免使用 new Object 和 new Array.可使用 {} 和 [] 来代替. --------------------------------------------------------------------------------
一个cssQuery对象 javascript脚本实现代码_js面向对象
复制代码 代码如下: /** * @author Supersha * @QQ:770104121 */ var cssQuery = { //parent:用于存储当前节点的父节点的引用 parent: document, select: function(selectorStr){ var selectors=selectorStr.split(" "); //分隔字符串 for (var i = 0, len = selectors.length; i < len; i++
一个简单的javascript类定义例子_js面向对象
复制代码 代码如下: <script> //定义一个javascript类 function JsClass(privateParam/* */,publicParam){//构造函数 var priMember = privateParam; //私有变量 this.pubMember = publicParam; //公共变量 //定义私有方法 function priMethod(){ return "priMethod()"; } //定义特权方法 //特权方法可以
js对象的比较_js面向对象
复制代码 代码如下: Object.prototype.equals = function(obj){ if(this == obj) return true; if(typeof(obj)=="undefined"||obj==null||typeof(obj)!="object") return false; var length = 0; var length1=0; for(var ele in this) { length++; } for(var ele
javascript 面向对象编程 万物皆对象_js面向对象
javascript和java.C#等语言一样也具有面向对象的一些特征,但细比较的时候,会发现这些特征并不是真正的面向对象,很多地方都是利用对象本身来模拟面向对象,所以认为javascript不能算是面向对象编程语言,而是基于对象的语言. 在javascript中真的是万物皆对象,new出来的东西是对象,方法是对象,连类也都是对象.下面分别来看一下对象.方法和类的对象特征. 1.拿内置的Date来看一下吧 复制代码 代码如下: var time = new Date(); var timeStr
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象_js面向对象
一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascript中,已经存在一些标准的类,例如Date.Array.RegExp.String.Math.Number等等,这为我们编程提供了许多方便.但对于复杂的客户端程序而言,这些还远远不够. 与Java不同,Java2提供给我们的标准类很多,基本上满足了我们的编程需求,但是Javascript提供的标准类很