虽然完全可以将属性或对象附加到函数对象,但我想知道它是否有任何问题并不是那么明显?我似乎无法在网上找到任何具体的内容。
var f = function(){};
f.blah = function(){};
答案 0 :(得分:1)
将属性附加到函数是Javascript模拟面向对象编程的核心。
一个类由一个函数对象表示,附加到函数对象的属性决定了方法,成员和继承。
例如:
Class Animal:
def moves:
print("moves")
def calls:
print("calls")
Class Bird < Animal:
def moves:
print("flies")
Class Ostrich < Bird:
def moves:
print("runs")
def calls:
print("HONK")
将在Javascript中表示如下:
var Animal = function() { console.log("Animal constructor"); }
Animal.prototype.moves = function() { console.log("moves"); }
Animal.prototype.calls = function() { console.log("calls"); }
var Bird = function() { Animal.call(this); console.log("Bird constructor"); }
Bird.prototype = Object.create(Animal.prototype);
Bird.prototype.moves = function() { console.log("flies"); }
var Ostrich = function() { Bird.call(this); console.log("Ostrich constructor"); }
Ostrich.prototype = Object.create(Bird.prototype);
Ostrich.prototype.moves = function() { console.log("runs"); }
Ostrich.prototype.calls = function() { console.log("HONK"); }
有关详细信息,请查看:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript