js面向对象
简单封装对象
var dog = {
name:'旺财',
color:'黄色'
}
var dog1 = {}
dog1.name = '来福';
dog1.color = '白色';
函数对象
function Dog(name,color){
return{
name:name,
color:color
}
}
var dog3 = Dog('来福','黄色');
var dog3 = Dog('旺财','黑色');
封装对象
function GetDog(name,color){
this.name = name;
this.color = color;
}
var dog5 = new GetDog('嘤嘤嘤','粉色');
所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。
构造函数 (prototype)
Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象。这个对象 的所有属性和方法,都会被构造函数的实例继承。
这意味着,我们可以把那些不变的属性和方法,直接定义在prototype对象上。
function GetDog2(name,color){
this.name = name;
this.color = color;
}
GetDog2.prototype.type = '犬科动物';
GetDog2.prototype.eat = function(){alert('爱吃骨头')};
dog7 = new GetDog2('大大','黑白色')
isPrototypeOf():这个方法用来判断,某个proptotype对象和某个实例之间的关系
hasOwnproperty():用来判断某一个属性到底是本地属性,还是继承自prototype对象的属性。
in:运算符可以用来判断,某个实例是否含有某个属性,不管是不是本地属性。也可以用来遍历对象属性。
对象的继承 (call 或者 apply)
1.使用call 或者 apply 来进行继承
call()定义:调用一个对象的一个方法,以另一个对象替换当前对象。
arguments是一个特殊对象,一般用于代替未名的实参,使用方法类似对象arguments[i]。
也可使用arguments.lenght来获取参数的个数
2.使用prototype属性来完成
Dog.prototype = new Animal();//将Dog的prototype对象指向一个Anima的实例
任何一个prototype对象都有一个constructor属性,指向它的构造函数。
任何一个prototype对象都有一个constructor属性,指向它的构造函数。因此,在运行"Dog.prototype = new Animal();"这一行之后,dog2.constructor也指向Animal!
因此我们必须手动纠正,将Dog.prototype对象的constructor值改为Dog
因此我们必须手动纠正,将Dog.prototype对象的constructor值改为Dog
Dog.prototype.constructor = Dog;
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
- 找不到素材资源介绍文章里的示例图片?
- 对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
- 模板不会安装或需要功能定制以及二次开发?
- 请QQ联系我们
发表评论
还没有评论,快来抢沙发吧!