H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【前端问题精选】JS的原型调用问题

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

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

new A().getName();

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

回答:

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

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

回答:

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

本文地址:H5W3 » 【前端问题精选】JS的原型调用问题

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址