1、prototype 在JavaScript中并没有类的概念,但JavaScript中的确可以实现重载,多态,继承。这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释。 2、简单的例子 代码如下:var Blog = function( name, url ){ this.name = name; this.url = url; }; Blog.prototype.jumpurl = ; Blog.prototype.jump = function(){ window.location = this.jumpurl; }; /* *等同于 Blog.prototype = { jumpurl : , jump...
Array.prototype.slice.call(thisArg[, arg1[, arg2[, ...]]])成员介绍: Array 数组对象 prototype [property]是javascript中对象的属性,用来返回对象的原型引用,可以动态的给此添加方法和属性,对象如array,object,或者用户定义的对象,详细请看这里 slice [Function]用原array对象,截取指定部分返回一个新的Array 对象,详细请看这里 call [Function] call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 调用一个对象的一个方...
我们使用prototype属性提供对象的类的一组基本功能。并且对象的新实例会"继承"赋予该对象原型的操作。但是这个prototype到底是怎么实现和被管理的呢?对于对象的prototype属性的说明,JScript手册上如是说:所有 JScript 内部对象都有只读的 prototype 属性。可以向其原型中动态添加功能(属性和方法),但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。 下面我们看三个经典的prototype属性的使用示例。 1、...
prototype它是用Javascript写好的一些API,包括对Javascript中的类如String,Array等进行的扩充,把JS文件嵌入后直接用就行了. 代码如下:String.prototype.strLen = function() { var len = 0; for (var i = 0; i < this.length; i++) { if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0) len += 2; else len ++; } return len; } //将字符串拆成字符,并存到数组中 String.prototype.strToChars = function(){ var chars ...
代码如下:function test(){ //将参数转为一个数组 var args = Array.prototype.slice.apply(arguments); alert(args); } arguments在JavaScript语法中是函数特有的一个对象属性(Arguments对象),用来引用调用该函数时传递的实际参数。这个对象很象数组,拥有length属性且使用下标的形式来获取其元素,但它又并非真正的Array对象。更多关于Arguments对象的资料请参阅《JavaScript权威指南》。 所以,直接调用ar...
一、什么是JavaScript中对象的prototype属性 JavaScript中对象的prototype属性,是用来返回对象类型原型的引用的。我们使用prototype属性提供对象的类的一组基本功能。并且对象的新实例会”继承”赋予该对象原型的操作。但是这个prototype到底是怎么实现和被管理的呢?对于对象的prototype属性的说明,JavaScript手册上如是说:所有 JavaScript内部对象都有只读的 prototype 属性。可以向其原型中动态添加功能(属性和方法),但该...
通常在JavaScript中用for与for in遍历数组结果是没有什么区别的,它的循环变量i都是从0开始的数组索引(for in如果遍历的是非数组对象的属性集合,则这个i就是属性名,或称之为key)。另外要注意一点是:用for in遍历数组,循环变量i是字符串类型的。如果对Array进行原型扩展后,再用for in来对数组进行遍历时就要注意些问题了。 测试代码: 代码如下:Array.prototype.max = function() { return Math.max.apply({}, this); }; va...
首先我们继续上文的代码,我们来把这段代码延伸一下: 代码如下:<script type="text/javascript"> var Person = function (name, age) { this.name = name; this.age = age; this.Introduce = function () { alert("My name is " + this.name + ".Im " + this.age); }; }; var person1 = new Person("飞林沙", 21); var person2 = new Person("kym", 26); alert(person1.Introduce == person2.Introduce); </script> 结果弹出fal...
好,那就让我们一步步打造,首先让我们来看下继承原本的写法: 代码如下:<script> var Person = function(name, age) { this.name = name; this.age = age; } Person.prototype.SayHello = function () { alert(this.name + "," + this.age); }; var Programmer = function (name, age, salary) { Person.call(this, name, age); this.salary = salary; }; Programmer.prototype = new Person(); var pro = new Programmer("kym",...
代码如下://var People={name:"xiong",age:15}; //var Person=function(user,age){ // this.name=user; // this.age=age; // this.say=function(){alert("I am "+this.name+"\n"+this.age);} //} //var Chairman=function(name,salary){ // Person.call(this,name); // } //var Bill=new Person("Bill",15); //var Hu=new Chairman("Hu Jintao"); //Person.prototype.eat=function(){ // alert("I'm eating"); /...
在使用portotype,调用ajax方法时出现乱码,此时,获取页面中加入 可以试试;; Page.Response.Charset = "gb2312"; 如果不奏效,有人提供另外解决方案: 代码如下:request: function(url) { this.url = url; this.method = this.options.method; this.encoding = this.options.encoding; var params = this.options.parameters; if(this.encoding.toUpperCase()=="UTF-8"){ encode=encodeURIComponent; }else{ encode=escape; } 在...
代码如下:<script type="text/javascript"> function SpecialArray(arr){ this.arr=arr; } SpecialArray.prototype.map=function(func){ for(var i=0,len=this.arr.length;i<len;i++){ this.arr[i]=func(this.arr[i]); //调用函数,改变arr数组的每个项的值 } return this; //返回自身对象 } var obj=new SpecialArray([ a , b , c ]); //可以对obj的arr属性做任何的操作 alert(obj.map(function(el){return el.toUpperCase()}).ar...
$H就是建立Hash对象的便捷方法,关于Hash对象具体参考【Prototype 学习——Hash对象 】 $R就是简历ObjectRange对象的便捷方法,关于ObjectRange对象具体参考【Prototype 学习——ObjectRange对象 】 Try.these: Accepts an arbitrary number of functions and returns the result of the first one that doesn't throw an error. 代码如下://就是用一个循环嵌套try...catch完成这个工具函数的 var Try = { these: function() { va...
代码如下:function $$() { return Selector.findChildElements(document, $A(arguments)); } 这个类可以分成三个部分:第一个部分就是根据不同的浏览器,判断使用什么DOM操作方法。其中操作IE就是用普通的getElementBy* 系列方法;FF是document.evaluate;Opera和Safari是selectorsAPI。第二部分是对外提供的基本函数,像findElements,match等,Element对象里面的很多方法就是直接调用这个对象里面的方法。第三部分就是XPath等一些...
var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } 定义了一个class函数作为创建类的模版或者说是原型 使用方法 代码如下:<html> <title>Test Class.create()</title> <head> <script language="JavaScript" type="text/javascript" src="prototype.js"></script> <script> var llinzzi= Class.create(); llinzzi.prototype = { initialize:function(){ document.writeln(T...