澳门威利斯人_威利斯人娱乐「手机版」

来自 网络资讯 2019-09-16 19:56 的文章
当前位置: 澳门威利斯人 > 网络资讯 > 正文

遍历对象的属性的代码,为JavaScript类型增加方法

如:

javaScript的连串函数(如Number/String/Boolean/Array/Date/Obejct等)都以延续于 Function.prototype,所以给Function.prototype扩大方法,同期也会听得多了就能说的清楚到由它衍生的下层类型函数。如:

复制代码 代码如下:

复制代码 代码如下:

Function.prototype.addMethod=function(methodName,func){
if(!this.prototype[methodName]){
this.prototype[methodName]=func;//给原型扩充方法,此方式会影响到该类型的实例上
}
return this.prototype;//重临原型,此类型实例能够拓宽链形调用
}
function CustomObject(name,value){
this.name=name || 'CustomeObject';
this.value=value || 0;
this.toString=function(){
return '[name:' this.name ',value:' this.value ']'
}
}
CustomObject.addMethod('testFun',function(){})
var obj=new CustomObject();
var info='';
for(var property in obj){
info =property " | ";
}
alert(info); // name | value | toString | testFun |

Function.prototype.addMethod=function(methodName,func){
if(!this[methodName]){
this[methodName]=func;//给项目扩张方法,类似于类型的静态方法。func方法是赋于了项目而非实例。
}
return this;//this 将绑定到情势的调用对象(类型函数),重返this可以进行链式调用
}
Array.addMethod('testFun',function(){alert(this)});
//Array.testFun(); //function Array() {[native code]}
Object.addMethod('testFun',function(){alert(this)});
//Object.testFun(); //function Object() {[native code]}
Boolean.addMethod('testFun',function(){alert(this)});
//Boolean.testFun(); //function Boolean() {[native code]}
function CustomObject(name,value){
this.name=name || 'CustomObject';
this.value=value || 0;
this.toString=function(){return '[name:' this.name ',value:' this.value ']'}
}
CustomObject.addMethod('testFun',function(){alert(this)});
/* return:
* function CustomObject(name, value) {
this.name = name || "CustomObject";
this.value = value || 0;
this.toString = function () {return "[name:" this.name ",value:" this.value "]";};
}
*/
CustomObject.testFun();

但那时for in 也把该指标所传承于prototype对象中的属性也遍历出来了。要是要删减它所承接的质量,可以用hasOwnProperty语句。如

此时一旦用实例来调用的话,则会报错。如:

复制代码 代码如下:

复制代码 代码如下:

Function.prototype.addMethod=function(methodName,func){
if(!this.prototype[methodName]){
this.prototype[methodName]=func;//给原型扩张方法,此办法会耳熏目染到该品种的实例上
}
return this.prototype;//重临原型,此类型实例能够举办链形调用
}
function CustomObject(name,value){
this.name=name || 'CustomeObject';
this.value=value || 0;
this.toString=function(){
return '[name:' this.name ',value:' this.value ']'
}
}
CustomObject.addMethod('testFun',function(){})
var obj=new CustomObject();
var info='';
for(var property in obj){
if(!obj.hasOwnProperty(property)) continue;
info =property " | ";
}
alert(info); // name | value | toString |

var customObject=new CustomObject(); //定义三个CustomObject实例
customObject.testFun();//Error: temp.testFun is not a function

您恐怕感兴趣的稿子:

  • Javascript的数组与字典用法与遍历对象的属性手艺
  • JQuery $.each遍历JavaScript数组对象实例
  • jquery遍历筛选数组的二种艺术和遍历解析json对象
  • JS遍历数组和对象的不一致及递归遍历对象、数组、属性的艺术详解
  • jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
  • js数组循环遍历数组内全部因素的点子
  • JS数组的遍历格局for循环与for...in
  • JS简单循环遍历json数组的措施
  • js中遍历对象的性质和值的情势
  • JS中数组与目的的遍历方法实例小结

给实例增添方法
一旦给项目实例扩张方法,则应当把艺术绑定到花色的prototype上。如

本文由澳门威利斯人发布于网络资讯,转载请注明出处:遍历对象的属性的代码,为JavaScript类型增加方法

关键词: 澳门威利斯人