javascript练习-方法借用
方法借用其实也可以叫做多重继承
var generic = {
//返回一个字符串,这个字符串包含构造函数的名字(如果构造函数包含名字)
//这个以及所有非继承来的,非函数属性的名字和值
toString:function(){
var s = '[';
//如果这个对象包含构造函数,且构造函数包含名字
//这个名字会作为返回字符串的一部分
//需要注意的是,函数的名字属性是非标准的,并不是在所有的环境中都可用
if(this.constructor && this.constructor.name){
s += this.constructor.name + ':';
}
//枚举所有非继承且非函数的属性
var n = 0;
for(var name in this){
if(!this.hasOwnProperty(name)){
continue;
}
var value = this[name];
if(typeof value === "function"){
continue;
}
if(n++)s+=",";
s += name + '=' + value;
}
return s + ']';
},
//通过比较this和that的构造函数和实例属性来判断它们是否相等
//这种方法只适合于哪些实力属性是原始值的情况,原始值可以通过"==="来比较
//这里还处理一种特殊情况,就是忽略由Set类添加的特殊属性
equals:function(that){
if(that==null) return false;
if(this.constructor !== that.constructor) return false;
for(var name in this){
if(name === "|**objectid**|")continue;
if(!this.hasOwnProperty(name))continue;
if(this[name] !== that[name])return false;
}
return true;
}
}
javascript练习-方法借用的更多相关文章
- javascript继承之借用构造函数与原型
javascript继承之借用构造函数与原型 在js中,关于继承只有利用构造函数和原型链两种来现实.以前所见到的种种方法与模式,只不过是变种罢了. 借用构造函数 1 2 3 4 5 6 7 8 9 1 ...
- JavaScript 数组方法处理字符串 prototype
js中数组有许多方法,如join.map,reverse.字符串没有这些方法,可以“借用”数组的方法来处理字符串. <!doctype html> <html lang=" ...
- JavaScript - reduce方法,reduceRight方法 (Array)
JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:a ...
- JavaScript slice() 方法
JavaScript slice() 方法 JavaScript Array 对象 实例 在数组中读取元素: var fruits = ["Banana", "Oran ...
- JavaScript toLocaleString() 方法
JavaScript toLocaleString() 方法 JavaScript Array 对象 定义和用法 把数组转换为本地字符串. 语法 arrayObject.toLocaleString( ...
- 关于JavaScript lastIndexOf() 方法 w3school.com.cn写的不一定全对
关于JavaScript lastIndexOf() 方法 w3school.com.cn的表述是 定义和用法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的 ...
- javascript一些方法兼容
javascript一些方法兼容 标签(空格分隔): javascript 方法收集 [TOC] Object.keys 参考地址 if (!Object.keys) Object.keys = fu ...
- 在Swift中使用JavaScript的方法和技巧
本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的Swift ...
- 把C编译成javascript的方法
把C编译成javascript的方法,便于嵌入到HTML5中 https://github.com/kripken/emscripten
随机推荐
- ajax实现jsonp跨域接口
HTML页面代码: <script type="text/javascript"> function UrlSearch(){ var name,value; var ...
- c语言折半查找
折半查找又称为二分查找,它的前提是线性表中的记录必须是有序的(通常从小到大有序),线性表必须采用顺序存储. 折半查找的基本思想是 : 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等 ...
- 合并两个排好序的链表(c++)
#include<iostream> struct node{ int payload; node* next; node(int payload){this->payload=pa ...
- 读取xml文件报错:Invalid byte 2 of 2-byte UTF-8 sequence。
程序读取xml文件后,系统报“Invalid byte 2 of 2-byte UTF-8 sequence”错误,如何解决呢? 1.程序解析xml的时候,出现Invalid byte 2 of 2- ...
- django 1.8 评论库comments配置问题
comments库是django框架内置的评论库,可以快速搭建网站需要的评论系统.不过1.8的配置和1.6的出现了一点小小配置,由于刚刚接触,按照网上的文档配置,需要在 settings.py的INS ...
- CSS布局(一)
本节内容: 没有布局 display属性 margin:auto; max-width 盒模型 没有布局 如果想把所有内容都塞进一栏里,那么不用设置任何布局也是可以的.然而,如果用户把浏览器窗口调整的 ...
- Sql Server 分区之后增加新的分区
随着时间的推移,你可能会希望为已分区的表添加额外的分区(例如,可以为每一个新年创建一个新的分区).要增加一个新的分区,可以使用ALTER PARTITION SCHEME和ALTER PARTITIO ...
- VBA操作单元格
行或列的Group化 ws.Rows("row1:row2").group row1:Group化的开始行 row2:Group化的结束行 ws.Co ...
- c#获取ip的方法cdn加速获取真实ip方法
服务端://方法一HttpContext.Current.Request.UserHostAddress; //方法二HttpContext.Current.Request.ServerVariabl ...
- 利用windows服务+timer或者windows任务计划程序+控制台进行进行每日邮件推送
1.邮件发送代码 using System.Text; using System.Net; using System.Net.Mail; using System.Reflection; using ...