Я пишу код, который должен ссылаться на this
внутри прототипа, но он не может быть функцией. Javascript не позволит мне сделать это, но похоже, что свойство массивов и строк length
делает это. Я знаю, что length
встроен, а моего кода нет, но если смогу, как это реализовать?Как работает свойство length?
Я пробовал:
String.prototype.prototypeName = (function(aThing){
//Do whatever I need to do here
})(this);
Но что ссылки на глобальный объект, поскольку this
вызывается вне функции.
String.prototype.prototypeName = function(aThing){
//Do whatever I need to do here referencing this
};
Однако, это функция, и я не могу этого.
У меня нет функции, потому что пользователь может вызвать функцию и использовать на ней typeof
, и прототип должен возвращать строку. Например:
String.prototype.reverse = "Put something that is the reversed string (or this)";
console.log("Stuff"); //"ffutS"
console.log("Anything"); //gnihtynA
Используйте getter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get –
«* ссылайтесь на это внутри прототипа, но он не может быть функцией *", " * Предполагается, что прототип вернет строку * "- что? Пожалуйста, покажите ожидаемый результат того, как вы будете использовать то, о чем просите. – Bergi
Нет, невозможно повторно реализовать то, что '.length' делает на массивах. – Bergi