求高手指点,js中prototype的用法
function A(name){
this.name = name;
A.prototype.getName = function(){
return this.name;
}
};
function B(name){
this.name = name;
};
B.prototype.getName = function(){
return this.name;
}
这两种写法有什么区别啊?portotype什么时候动态绑定。 在getName中如果不写this,又会出现什么?
------解决方案--------------------第一种写法和第二种写法执行结果相同,但第一种写法效率低于第二种
第一种把原型方法放到了构造函数里面,每new一个对象时,就会重新创建一个getName,体现不出原型的优势了
如果没有this就输出不了name了,访问对象的属性必须得用对象.属性名
------解决方案--------------------return this.name;
这里的this指向函数调用者,就是说将返回函数调用者的name属性。如果去掉this,那么将返回一个全局变量name(因为getName函数内部没有定义name变量,它必然会查找全局变量);如果没有定义全局变量name,将返回一个未定义undefined。
至于两种prototype用法,我只见过第二种。。。。