var Foo = function(){
this.age = 18;
this.**getName** = function () {
console.log('2');
}
}
Foo.**getName** = function () {
console.log('2');
}
请问一下,这两个getName属性有什么区别吗?
var Foo = function(){
this.age = 18;
this.**getName** = function () {
console.log('2');
}
}
Foo.**getName** = function () {
console.log('2');
}
请问一下,这两个getName属性有什么区别吗?
第一个是加在实例上,属于实例属性。
第二个是把构造器当做函数用的,getName直接加在构造器上。
可以测试一下
var t = new Foo()
t.getName()
t.constructor.getName()
观察两者的结果,相信你就能明白
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
构造函数里面的属性是添加到实例上面的;
Foo.getName
是Foo
这个对象的属性。例如:
var foo = new Foo()
,此时foo
这个实例的getName
是构造函数中添加的实例属性,而Foo.getName
是Foo
对象的属性