js的函数为什么也是对象,函数怎么自定义方法和属性?<js权威指南>中说对象的方法通常是继承的属性

如题所述

这不是很方便吗?这样就可以直接被函数做参数传到需要回调的其他函数中使用,java中的接口调用需要实例化,js就不需要了呀。
函数自定义方法,其实可以把你说的函数看做java中的类。比如:
function Example(name){this.name=name}
Example.prototype.setName=function(name){
this.name=name;
return this;
}
Example.prototype.getName=function(){
return this.name;
}
new Example('name').getName();//name
new Example('name').setName('name1').getName();//name1
无论是js中的Array,String……都有类似的prototype类型描述对象,当这些类型实例化以后可直接调用prototype中定义的方法或属性,也可覆盖。在实例化中prototype会被简单化成__proto__对象,可以通过console.log进行观察。关于继承,所有的js对象都有一个顶级的被继承对象,Object,方法有很多,通常被提到的就是定义类型函数时给prototype赋个你想继承的类型的实例化object,但这种方法很蠢,自己看书,搜索,实践吧,手机打字太累了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-02-17
function aa(){} 这样的合适创建函数
相似回答