2016-05-12 2 views
0

его части учебного упражнения, и я хочу, чтобы создать прототип для functionsX с строковым значением «имя» и код ниже неправильно ..создания функционального объекта прототипа и кода неправильно

function creatingFunctions(functionsX){ 

    functionsX.number=200; 
} 

functionsX.prototype.propName=function(){ 
    return "name"; 
    }; 
+1

Ну, вы правы, что это неправильно. Однако вы не объяснили, каково должно быть намерение кода. Пожалуйста, взгляните на [ask] и как создать [mcve]. –

+0

Цель состоит в том, что каждая функция X имеет свойство propName, значение которого является функцией, которая возвращает строку «name» - так я создаю прототип – learningcoding

+0

, возможно, объявление переменной в первую очередь поможет ... – SparK

ответ

0

Объявление свойства в объекте прототипа функции должно быть в том же объеме, что и там, где оно доступно.

function creatingFunctions(functionsX) { // Assuming functionsX is a function object. 

    functionsX.number=200; 
    functionsX.prototype.propName = function() { 
    return "name"; 
    } 

} 

Использование:

function foo() {}; 
creatingFunctions(foo); 
foo.propName(); // returns "name"; 

Вместо того чтобы делать все, что вы могли бы прошли этот путь:

function Foo() { 
    this.number = 200; 
} 

Foo.prototype.propName = function() { 
    return "name"; 
} 

// Usage would be: 

var foo = new Foo(); 
foo.number // 200 
foo.propName() // "name" 
+0

Вероятно, вы имели в виду '(new foo) .propName();' в вашем первом фрагменте использования – Bergi

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