Я пытаюсь преобразовать java-код в javascript (js), и я очень расстроен тем, как js не хватает многих строковых методов. Я знаю js строковые библиотеки и что вы можете сделать someString.length, чтобы получить длину строки. Но я был приятно удивлен, увидев в верхнем ответ на эту тему: How to check if a string "StartsWith" another string? Это метод StartsWith может быть определен в моем JS файл кода, как так:Как определить функцию javascript string.length()?
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function (str){
return this.indexOf(str) == 0;
};
}
Так что я пытался сделать что-то подобное для метод длина:
if (typeof String.prototype.length != 'function') {
String.prototype.length = function(){
return this.length;
};
}
var str = "a string";
alert(str.length());
Но это не работает, я получаю следующее сообщение об ошибке в хроме при попытке позвонить: Uncaught TypeError: Property «длина» объекта не функция
Кто-нибудь знает, почему я не могу создать функцию length() аналогично тому, как это можно сделать для метода startsWith (str), описанного выше? Спасибо, Keith
Почему вы хотите, чтобы превратить существующее свойство в метод? – delnan
Мэтту Джонсону и дельнану: Спасибо, но я знаю об этом, как указано в моем посте. Я пытаюсь определить его как функцию, чтобы я мог вырезать и вставлять свой java-код в js, не заставляя себя перекодировать вещи. ура – keithphw
Очень плохая идея. Это не будет летать для большинства кода. Языки слишком разные. Также обратите внимание, что это (если бы оно сработало для начала) сломало бы * код другого пользователя *. – delnan