首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

求,js中prototype的用法

2012-10-17 
求高手指点,js中prototype的用法function A(name){this.name nameA.prototype.getName function(){re

求高手指点,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用法,我只见过第二种。。。。

热点排行