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()
观察两者的结果,相信你就能明白
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答897 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
构造函数里面的属性是添加到实例上面的;
Foo.getName
是Foo
这个对象的属性。例如:
var foo = new Foo()
,此时foo
这个实例的getName
是构造函数中添加的实例属性,而Foo.getName
是Foo
对象的属性