Es posible crear un método como este en un objeto literal:
https://jsfiddle.net/7q1530sp/2
let o = { f: function f () { alert("f") } } of();Dado que la función también es un objeto, me gustaría poder hacer lo mismo dentro de una función. Probé esto pero no funciona, ¿hay alguna manera?
https://jsfiddle.net/7q1530sp/1
function o(){ f: function f () { alert("f") } } of();Puede crear objetos dentro de una función en Javascript. Aquí está tu código:
function o() { const d = { f: function f() { alert("f") }, } df(); } o();Salida: https://jsfiddle.net/pLjc0vbf/1/
¡Puede definir tantas funciones dentro de funciones como desee!
let f1 = function() { let f2 = function() { let f3 = function() { return 'functions'; }; return 'love ' + f3(); }; return 'I ' + f2(); }; console.log(f1());Si desea definir funciones como propiedades, también puede hacer lo siguiente:
let f1 = function() { return 'I '; }; f1.f2 = function() { return 'love '; }; f1.f3 = function() { return 'functions'; }; console.log(f1() + f1.f2() + f1.f3());Tenga en cuenta que esta asignación de propiedad funciona exactamente de la misma manera que funcionan los objetos; p.ej
let f1 = function(){}; f1.someProperty = 'someValue';contra
let o = {}; o.someProperty = 'someValue';La asignación de propiedades a una función no necesita ocurrir dentro del cuerpo de la función, pero las funciones ciertamente podrían asignarse propiedades a sí mismas:
let f = function() { fa = 'b'; fc = 'd'; }; Tenga en cuenta que, en este caso, las propiedades fa y fc no existirían hasta que realmente llame a la función realizando: f() .
Tienes que definirlo fuera de la función:
function o(){ console.log("o"); } of = function(){ console.log("f"); } of()