求教如何理解这些代码
①
<script language="javascript">
Function.prototype.method = function (name, func)
{
if(!this.prototype[name])
{
this.prototype[name]=func;
return this;
}
};
Number.method('ins', function(){return 2;});
document.write((3).ins());
</script>
这里的以下这些代码怎么理解
if(!this.prototype[name])
{
this.prototype[name]=func;
return this;
}
prototype[name]什么意思
②
还有再问一下
var o = {};
这个是表示一个数组的意思吗?
------解决方案--------------------
if(!this.prototype[name])
{
this.prototype[name]=func;
return this;
}
prototype是原型的意思
说白了就是当你实例化一个类的时候,实例化出来的对象的属性与方法的集合
这里因为name是变量,并不能确定其具体的值,所以用this.prototype[name]来表示
假如name的值等于"show",那这里也可以写成this.prototype.show
上面的代码就是判断每个function是否有名为你传进去的参数的属性或者方法,没有的话就给他加上这个属性或者方法(你可以传任意的字符串进去)
var o = {};
不是数组,可以说他是一个命名空间,也可以说他是一个对象字面量,也可以说这货是一个空对象
------解决方案--------------------prototype是原型,放的一般是可以共享的方法,省点内存。当然围绕prototype有太多可以做的文章了,直接可以写本书。
xxx[name] 这种方式可以看作是javascript特有的反射,有以下几种常见的操作
xxx[name] =
=xxx[name]
for(var key in xxx){
alert(xxx[key]);
}
if(key in xxx)