标签:
1、原型式继承和类式继承的区别
a:原型继承
var father = function(){}; father.prototype = { add:function(){ console.log(‘a的原型方法:加法‘) }, delete:function(){ console.log(‘a的原型方法:减法‘) } } var son = new father(); smSon.add()
b:类式继承
function Super(){ this.colors=["red","blue"]; console.log(this.color) } function Sub(){
Super.call(this); } var cb = new Sub(); console.log(cb.colors) console.log(cb)
2、单例模式
function Construct(){ // 确保只有单例 if( Construct.unique !== undefined ){ return Construct.unique; } // 其他代码 this.name = "NYF"; this.age="24"; Construct.unique = this; } var t1 = new Construct() ; var t2 = new Construct() ; console.log(t1===t2)
3、数组去重
方式一:把第一个元素先放入结果中再来遍历结果数据和原数组
Array.prorotype.unique = function(){ var result = [this[0]]; var repeat = false; for(var i=0;i<this.length; i++){ for(var j=0;j<result.length;j++){ if(result[j]==this[i]){ repeat = true; break; } } if(!repeat){ result.push(this[i]) } } }
方式二:把相同的内容放到一个对象中作为一个对象的属性,并赋值为1(真值),当存在时就取假值!1,这个做法很聪明,想法很独特
Array.prototype.unique2 = function(){
var result = []; var json = {};
for(var i=0; i<this.length; i++){ if(!json[this[i]]){ result.push(this[i])
json[this[i]] = 1;
}
}
}
标签:
原文地址:http://www.cnblogs.com/MonaSong/p/5505723.html