2017-01-26 2 views
1
function Person() { 
} 
Function.prototype.subfuncname = function(name) { 
    var old = this[name]; 
    this[name] = function() { 
    console.log('testing'); 
    } 
} 
Person.subfuncname("test"); 
var pe = new Person(); 

pe.test('test'); 

ожидают получить «тестирование», но получаю сообщение об ошибке (pe.test не является функцией)Javascript суб функция ошибки

Пожалуйста, помогите

+0

Пожалуйста, вы можете включать в ваше определение 'лица'? – Calum

+0

Спасибо за ответ, я добавил код – user3035661

+0

Где тест? – Hosar

ответ

1

Просто коррекции кода.

Вместо

this[name]=function(){ 
    console.log('testing'); 
} 

делают

this.prototype[name]=function(){ 
    console.log('testing'); 
} 

Это будет делать трюк.

function Person(){ 
 
    
 
} 
 
    
 
Function.prototype.subfuncname=function(name){ 
 
    
 
    this.prototype[name]=function(){ 
 
     alert('It works!'); 
 
    } 
 
    } 
 
    
 
Person.subfuncname("test"); 
 
var pe=new Person(); 
 
    
 
pe.test('test');

0

Единственный код, который нужно получить предполагаемый результат:

function Person() { 
 
    this.test = function(string) { 
 
     console.log(string); 
 
    } 
 
    } 
 
    var pe = new Person(); 
 
    pe.test('testing');

Если вы хотите, чтобы функция на прототип объекта Person вы также можете сделать это:

function Person() { 
 

 
} 
 

 
Person.prototype.test = function(string) { 
 
    console.log('testing'); 
 
} 
 

 
var pe = new Person(); 
 
pe.test('test');

1

Вы должны добавить прототип subfuncname функции Person объекта. Также необходимо вызвать в экземпляре subfuncname.

function Person() {} 
Person.prototype.subfuncname = function(name) { 
    var old = this[name]; 
    this[name] = function() { 
    console.log('testing'); 
    }; 
}; 
var pe = new Person(); 
pe.subfuncname("test"); 
pe.test('test'); 
0
function Person(){ 

} 

Person.prototype.subfuncname = function (txt) { 
    console.log(txt); 
    alert(txt); 
}; 

var pe=new Person(); 
pe.subfuncname("Jason"); 

Test case

Смежные вопросы