除了正常用法,slice 经常用来将 array-like 对象转换为 true array. 名词解释:array-like object – 拥有 length 属性的对象,比如 { 0: ‘foo', length: 1 }, 甚至 { length: ‘bar' }. 最常见的 array-like 对象是 arguments 和 NodeList. 查看 V8 引擎 array.js 的源码,可以将 slice 的内部实现简化为: 代码如下: function slice(start, end) { var len = ToUint32(this.length), result = []; for(var i = start; i < end...
代码如下: function people(name){ this.name=name; this.introduce=function(){ //对象方法 alert("my name is"+this.name); } } people.run=function(){ //类方法 alert("i can run"); } people.prototype.jump=function(){ //原型方法 alert("i can jump") } var p1=new people("vincent"); p1.introduce(); people.run(); //c#中的static p1.jump(); 代码如下: function common(){ //..... } common.prototype=new Object(...
疑惑出自于: 代码如下: function foo { this.name = foo; } alert(foo.prototype === Function.prototype ); //false。 当时一直没想明白为啥foo的原型不是Function.prototype。 下面例子让我想当然的认为o.prototype === Function.prototype 应该为true的: 代码如下: function foo() { this.name = foo; } Function.prototype.sayHello = function (parent) { alert(hello); }; foo.sayHello(); //alert hello ...
最近项目的部分功能正在重构,前端也基本上推翻了原来的设计,在之前半年的积累上有了新的方案。这几天在做前端的重构和设计,遇到了一些问题。因为这个模块最主要的还是对时间的控制,大量的操作js的Date对象,可是js原生的Date方法太少了,操作起来太不方便。于是打算扩展下Date的prototype。 长期从事C#的开发,被C#影响着我的思维。C#中DateTime的操作就很方便,于是就参考它对js的Date做了扩展。 代码如下: //将指定的毫秒数...
代码如下:/** 2 * 检索数组元素(原型扩展或重载) 3 * @param {o} 被检索的元素值 4 * @type int 5 * @returns 元素索引 6 */ 7 Array.prototype.contains = function(o) { 8 var index = -1; 9 for(var i=0;i<this.length;i++){if(this[i]==o){index = i;break;}} return index; } /** * 日期格式化(原型扩展或重载) * 格式 YYYY/yyyy/YY/yy 表示年份 * MM/M 月份 * W/w 星期 * dd/DD/d/D 日期 * hh/HH/h/H 时间 * mm/m 分钟 *...
代码如下: Array.prototype.indexOf = function (str) { for (var i = 0; i if (str == this[i]) { return i; } } return -1; } JavaScript教程/参考手册 JavaScript热搜 Vue利用canvas实现移动端手写板的方法vue2.0 移动端实现下拉刷新和上拉加载更多的示例解决vue-router中的query动态传参问题解决使用vue.js路由后失效的问题微信小程序实现换肤功能JS中touchstart事件与click事件冲突的解决方法完美解决axios在ie...
JavaScript中对象的prototype属性,可以返回对象类型原型的引用。这是一个相当拗口的解释,要理解它,先要正确理解对象类型(Type)以及原型(prototype)的概念。 1 什么是prototype JavaScript中对象的prototype属性,可以返回对象类型原型的引用。这是一个相当拗口的解释,要理解它,先要正确理解对象类型(Type)以及原型(prototype)的概念。 前面我们说,对象的类(Class)和对象实例(Instance)之间是一种“创建”关系,因此我们把...
在使用面向对象编程时,对象间的继承关系自然少不了!而原型正是实现javascript继承的很重要的一种方法! 我们首先来看以下代码: 代码如下: function person(name, age) { this.name = name; this.age = age; } person.prototype.getInfo = function() { alert("My name is "+this.name+", and I have "+this.age+" years old"); } var zhangchen = new person("zhangchen", 23); zhangchen.getInfo(); //output My name is zhan...
代码如下: /** * 一个设计精巧的定时执行器 * 首先由 Class.create() 创建一个 PeriodicalExecuter 类型, * 然后用对象直接量的语法形式设置原型。 * * 需要特别说明的是 rgisterCallback 方法,它调用上面定义的函数原型方法bind, 并传递自己为参数。 * 之所以这样做,是因为 setTimeout 默认总以 window 对象为当前对象,也就是说,如果 registerCallback 方法定义如下的话: * registerCallback: function() { * setTimeout(th...
用过Prototype的人都知道,里面有个类叫做Template,用法示例如下: 代码如下: var str = #{what} may have gone, but there is a time of #{how}; var object = { what : Swallows, how : return } var template_1 = new Template(str); var result = template_1.evaluate(object); console.log(result:,result); //输出:Swallows may have gone, but there is a time of return 这么挺方便的,所以下面就简单的分析一下实现原...
格式 camelize | capitalize | underscore | dasherize | inspect 变形 toArray | succ | times这里面一个有用的方法是inspect,按照参考手册的说明,他的作用是“返回该字符串针对调试的字符串表现形式(即用单引号或双引号包括起来,并使用 '\' 对特殊字符进行转义)”,在Object的toJSON里面也涉及到这个方法。 既然涉及到需要转义的字符,我们自然要一份转义字符信息,下面直接给出: 代码如下: String.spe...
添加到String.prototype中的方法比较多,不过归结起来,大致分为下面几类:分类 方法名 原始能力增强 strip | include | startsWith | endsWith | empty | blank格式 camelize | capitalize | underscore | dasherize | inspect 变形 toArray | succ | times替换 interpolate | sub | scan | truncate | gsubHTML处理 stripTags | escapeHTML | unescapeHTML参数序列化 toQueryParamsJSON...
在javascript中,根本找不到Enumerable的影子,因为这一块是Prototype作者从Ruby中借鉴过来的。并且Enumerable在实际中根本没有直接应用的机会,都是混入到其他的对象中,可以说是其他对象的一个“父类”(不过只是调用了Object的extend方法,进行了方法的直接拷贝而已)。 我并不熟悉Ruby,不过看Enumerable中的一些方法,倒是跟Python中的有几分相似。 Enumerable其中一个最重要的方法是each,each这个方法应该都比较熟悉...
Number部分方法比较少,一共有8个: toColorPart: 将 Number 对象转换为具有两位数字的十六进制形式 succ: 返回当前 Number 对象的下一个值,即当前值加一 times: 采用 Ruby 的风格来封装一个标准的 [0...n] 循环 toPaddedString:将当前 Number 对象转换为字符串,如果转换后的字符串长度小于 length 指定的值,则用 0 在左边补足其余的位数 abs: 返回当前 Number 对象的绝对值。 round: 返回当前 Number 对象四舍五入后的整数值。...
替换 interpolate | sub | scan | truncate | gsubinterpolate : 将字符串看作一个模板,并使用 object 的属性填充它。 sub : 将字符串中前指定个个与 pattern 指定的模式匹配的子串用 replacement 替换 scan : 遍历字符串中与参数 pattern 指定的模式匹配的所有子串。返回原始字符串本身。 truncate : 将字符串截短为指定的长度(包含后缀部分), 并添加一个后缀。 gsub :将字符串中所有与 pattern 指定的模式匹配的值全...