如何在不使用原型的情况下在javascript中创建自己的函数,例如pushFn?我想在像test.pushFn(8)
这样的点之后对数组使用我自己的函数。
const test = [1,3,4,2]
Array.prototype.pushFn = function(nr){
return [...this,nr,1]
}
test.sort((a,b)=>a>b? 1:-1).pushFn(8)
答案 0 :(得分:3)
完全不建议进行这种修改。
为什么?
当您修改JS对象原型(例如Object和/或Array)(在您的情况下)时,可能会增加破坏代码的可能性。另一个库将添加您添加到原型中的相同方法,但出于另一目的,您的代码将被破坏。
仅建议修改对象原型,以添加该标准尚不支持的功能,换句话说,就是添加polyfills。
您应该修改代码:
//Get Weather
//it worked when I changed here Weather[] to Weather !!!
getWeather(city:string):Observable<Weather> {
let key = "c2dcf8ffb5cdc3f8977bfd2ae7ea4738";
let url = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "&?units=metric&APPID=" + key;
return this.http.get<Weather>(url);
}
或者您可以为这种修改创建库。