将属性或函数附加到函数对象上是否有任何问题?
are there any issues with attaching a property or function to a function object
虽然完全有可能将属性或对象附加到函数对象,但我想知道它是否有任何不那么明显的问题?我似乎在网上找不到任何具体的关于这方面的内容。
var f = function(){};
f.blah = function(){};
将属性附加到函数中是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相关文章:
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 如何检查函数是否将运行或可用
- JavaScript尾部调用中的函数是否经过优化
- 当提供函数名称时,检查函数是否存在于同一作用域中
- 是否可以测试javascript函数是否是构造函数
- JavaScript-确定数学函数是否为无穷大
- jQuery-有没有一种方法可以测试函数是否异步
- 作用域问题-此函数是否形成闭包-JavaScript
- 如何检查该函数是否从外部js文件调用
- 什么更快?运行空函数或检查函数是否未定义
- 箭头函数是否像命名函数一样进行了优化
- JavaScript setInterval函数:是否存在错误
- 如何判断被调用的函数是否源自javascript中的点击事件
- jquery remove函数是否也删除了敲除绑定
- 如何使用jsoup检测内联js函数?我基本上想检查内联函数是否存在
- 当执行进入页面时,JavaScript history.back()函数是否生成HttpRequest
- 在动态更改数据之后(在ajax调用之后)检查函数是否存在
- 检查函数是否属于javascript中的function类型
- 从对象中调用的函数是否可以访问该对象的作用域