每一个构造函数都有一个属性叫做原型(prototype)。这个属性非常有用:为一个特定类声明通用的变量或者函数。prototype的定义 你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在 本文基于下面几个知识点:1 原型法设计模式在.Net中可以使用clone()来实现原型法原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。2 javascript的方法可以分为三类:...
写字前面在js中我们经常会看到Array.prototype.slice.call(arguments,0)的写法,当然,这个方法的作用也许大家都明白,那就是把类数组对象转换成一个真正的数组。关于这个方法,我说说自己的理解。 这里涉及到slice()方法和call()方法,所以先简单说说这两个方法。 slice()方法数组和字符串都有这个slice方法,这个方法的作用是截取一段数据。它接收两个参数,第一个参数是要截取的位置索引,第二参数可选,表示要截取到的结束位置...
javascript 是一种 prototype based programming 的语言, 而与我们通常的 class based programming 有很大 的区别,我列举重要的几点如下: 1.函数是first class object, 也就是说函数与对象具有相同的语言地位 2.没有类,只有对象 3.函数也是一种对象,所谓的函数对象 4.对象是按 引用 来传递的 那么这种 prototype based programming 的语言如何实现继承呢(OO的一大基本要素), 这也便是 prototype 的由来. 看下面的代码片断: functio...
prototype属性可以将属性和方法添加到任何对象(Number, Boolean, String 和Date等)。 注:原型(Prototype)是一个全局的属性,它可以使用在几乎所有的对象。 语法 object.prototype.name = value实例: 这里有一个例子展示了如何使用原型(prototype)属性的属性添加到对象: <html> <head> <title>User-defined objects</title><script type="text/javascript">function book(title, author){this.title = title; this.author = autho...
本文实例讲述了JavaScript中String.prototype用法。分享给大家供大家参考。具体如下: // 返回字符的长度,一个中文算2个 String.prototype.ChineseLength=function() { return this.replace(/[^\x00-\xff]/g,"**").length; } // 判断字符串是否以指定的字符串结束 String.prototype.EndsWith = function(str) {return this.substr(this.length - str.length) == str; } // 去掉字符左端的的空白字符 String.prototype.LeftTrim =...
本文实例讲述了Javascript中prototype属性实现给内置对象添加新的方法。分享给大家供大家参考。具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>prototype属性使用(给内置对象添加新的方法,方便调用)</title> <script type="text/javascript"> function getMaxFunc() {var max = this[0];for (var i in this) {if (max < ...
本文实例讲述了JavaScript使用Prototype实现面向对象的方法。分享给大家供大家参考。具体分析如下: prototype 是 Function 对象的一个属性,这个属性指向另一个对象。 这个对象的所有属性和方法,都会被构造函数的实例继承。 同时 prototype 又存在一个指向构造函数的引用 constructor,这样就成功的构成一个循环引用的原型链结构。 我们可以把那些不变的属性和方法,直接定义在 prototype 对象上, 节省内存开销。 function Cat(...
为什么要用Object.prototype.toString而不是Function.prototype.toString或者其它?这是和他们的toString解释方式有关系的。下面是ECMA中对Object.prototype.toString的解释:代码如下: Object.prototype.toString( ) When the toString method is called, the following steps are taken: 1. Get the [[Class]] property of this object. 2. Compute a string value by concatenating the three strings “[object “, Result (1)...
本文实例讲述了JS中prototype的用法。分享给大家供大家参考。具体分析如下: JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。 2 javascript的方法可以分为三类: a 类方法 b 对象方法 c 原型方法 例子如下: function People(name) ...
本文实例讲述了JavaScript通过prototype给对象定义属性的用法。分享给大家供大家参考。具体分析如下: 下面的JS代码定义了movie对象。在使用对象的过程中又通过prototype给对象添加了isComedy属性,调用的时候直接使用object.isComedy即可,非常方便。 <script type="text/javascript"> <!-- function movieToString() {return("title: "+this.title+" director: "+this.director); } function movie(title, director) {this.title...
具体代码如下:代码如下: //定义函数 function people(name,sex,age){ this.name = name; this.sex = sex; this.age = age; } //共享isStudent与sayName方法 people.prototype = { isStudent:true, sayName:function(){ alert(this.name); } } var people1 = new people(韩梅梅,女,16); //实例化对象1 var people2 = new people(李磊,男,17); //实例化对象2 //通过共享的方法让两个对象说出自己的名字 people...
本文实例讲述了js使用Array.prototype.sort()对数组对象排序的方法。分享给大家供大家参考。具体分析如下: 在讲对数组对象进行排序时,我们先来简单的了解一下Array.prototype.sort()。sort方法接受一个参数——Function,function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行比较,如果是Number类型则比较值的大小。如果比较的函数中返回1则两个元素交换位置,0和-1不交换位置。先看一...
Array没有indexOf方法,这样在一个数组中查找某个元素的索引时比较麻烦,为了调用方便,于是通过prototype原型扩展了Array.prototype.indexOf(),这样用起来就比较方便了。但是这个自定义的indexOf在对数组进行遍历的时候却出现了问题。代码如下: Array.prototype.indexOf = function(item) { for (var i = 0; i < this.length; i++) { if (this[i] == item) return i; } return -1; }用的时候直接代码如下: var arr=[...
本文实例讲述了javascript面向对象之共享成员属性与方法及prototype关键字用法。分享给大家供大家参考。具体如下: 共享成员属性与方法,使用prototype关键词代码如下:<script language="javascript" type="text/javascript"> function Dog(){} Dog.prototype.shout=function(){ alert("hello,小狗"); } Dog.prototype.name="黄色小狗"; var dog1 = new Dog(); var dog2 = new Dog(); dog1.shout(); dog2.shout(); dog1.name="小白...
JavaScript中的继承是通过原型链(prototype chain)来完成的:每个对象内部都有另外一个对象作为其prototype而存在,对象从这个prototype中继承属性(property)。对于每个对象来说,可以用以下三种方式来访问其原型对象:1.__proto__。可以通过对象的__proto__属性来访问其原型对象。该属性仅在Firefox、Safari和Chrome中得到支持,在IE和Opera中不支持。2.Object.getPrototypeOf()。可以将对象作为参数传入Object.getPrototypeOf()方...