JS的原型调用问题

function A() {
         getName = function (argument) {
             alert(1);
         }
}

A.prototype.getName = function (argument) {
            alert(2);
        }

new A().getName();

为什么是显示是2??不是调用A函数里面的getName方法吗???如果想调用第一个该怎么写?

阅读 1.9k
2 个回答
function A() {
         this.getName = function (argument) {
             alert(1);
         }
}

你不加this就把getName赋给全局对象了。所以new A()这个对象本身就没有getName了。

第一个getName,是一个全局变量,想访问第一个,直接getName(); 调用实例A的getName方法会去A的原型链查找,和全局变量没关系

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题