是否可以在不加对象名称前缀的情况下调用对象的函数
Is it possible to call the functions of an object, without prefixing the object name?
我正在编写用于执行数学计算的javascript代码。对于许多函数,我需要键入类似Math.log()
、Math.PI
或Math.sqrt()
的内容
有没有办法定义"名称空间"之类的东西,这样我只需说log()
、PI
或sqrt()
就可以直接访问数学中定义的所有函数?
只需删除(),就可以将函数分配给一个变量,然后再调用该变量。
var log = Math.log;
// ...
console.log("log of 5 = " + log(5));
实现这一点的方法是with
with (Math){
console.log(sin(4));
}
在with(Math)
块中,您可以使用在Math上定义的函数,如Math.log
Math.sin
等。
你可以在MDN 上找到更多关于它的信息
正如评论所指出的,这并不总是被认为是安全的,因为可能会发生名称冲突。这些潜在的陷阱与另一种语言中的using namespace
等语句相同,只是并非所有对象都设计为名称空间。因此,使用风险自负,或者按照另一个答案的建议,将特定函数分配给变量。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- 是否可以在不加对象名称前缀的情况下调用对象的函数
- 一旦附加到浏览器中的根对象,引用时根前缀是否必填
- 去掉while(1)前缀到JSON对象
- JavaScript中的单个冒号作为变量的前缀(而不是对象文字)
- 如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前