求解 g={};什么意思

nana_aoe_2013 2021-03-28 12:04:10


g = {};

(function(){ 'use strict'

g.m = Math;
g.mathProps = 'E LN10 LN2 LOG2E LOG10E PI SQRT1_2 SQRT2 abs acos asin atan ceil cos exp floor log round sin sqrt tan atan2 pow max min'.split( ' ' );
for ( var i = 0; i < g.mathProps.length; i++ ) {
g[ g.mathProps[ i ] ] = g.m[ g.mathProps[ i ] ];
}
g.m.TWO_PI = g.m.PI * 2;


求教 上面的g={};是什么作用
...全文
282 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
daswcszxw 2021-03-30
  • 打赏
  • 举报
回复
引用 4 楼 nana_aoe_2013 的回复:
[quote=引用 楼主 nana_aoe_2013 的回复:]


     g = {};

    (function(){ 'use strict'

        g.m = Math;
        g.mathProps = 'E LN10 LN2 LOG2E LOG10E PI SQRT1_2 SQRT2 abs acos asin atan ceil cos exp floor log round sin sqrt tan atan2 pow max min'.split( ' ' );
        for ( var i = 0; i < g.mathProps.length; i++ ) {
            g[ g.mathProps[ i ] ] = g.m[ g.mathProps[ i ] ];
        }
        g.m.TWO_PI = g.m.PI * 2;
求教 上面的g={};是什么作用
非常感谢你的回复,还有一些原理或者常用法则不是很清晰, 有两个问题想请教一下, 1、对于变量g,不用声明就可以直接使用吗?这样不使用var g ={};定义的变量有什么区别? 2、如果说定义变量g就是为了添加一个命名空间,让g变量含有很多的子成员(属性或者函数)。下面为什么要使用(function(){});使他直接执行,而不是直接添加g.prototype.xxx = function(){}呢? [/quote] 问题1,没什么区别。但这么写还有 重置类 g 的意思; 问题2,直接向g添加只成员是类属性,使用prototype是添加原型属性。 具体区别 可以敲一些demo 实例化后看看。 或者直接看es6 class 类 static 关键字等等
nana_aoe_2013 2021-03-29
  • 打赏
  • 举报
回复
引用 楼主 nana_aoe_2013 的回复:


g = {};

(function(){ 'use strict'

g.m = Math;
g.mathProps = 'E LN10 LN2 LOG2E LOG10E PI SQRT1_2 SQRT2 abs acos asin atan ceil cos exp floor log round sin sqrt tan atan2 pow max min'.split( ' ' );
for ( var i = 0; i < g.mathProps.length; i++ ) {
g[ g.mathProps[ i ] ] = g.m[ g.mathProps[ i ] ];
}
g.m.TWO_PI = g.m.PI * 2;


求教 上面的g={};是什么作用

非常感谢你的回复,还有一些原理或者常用法则不是很清晰,
有两个问题想请教一下,
1、对于变量g,不用声明就可以直接使用吗?这样不使用var g ={};定义的变量有什么区别?
2、如果说定义变量g就是为了添加一个命名空间,让g变量含有很多的子成员(属性或者函数)。下面为什么要使用(function(){});使他直接执行,而不是直接添加g.prototype.xxx = function(){}呢?
天际的海浪 2021-03-28
  • 打赏
  • 举报
回复
给g赋值一个空Object对象 在这个代码中g可以当作是一个命名空间,可以为其随意添加属性
泡泡鱼_ 2021-03-28
  • 打赏
  • 举报
回复
就是预设一个空对象,然后把一些和科学计算相关的属性和方法给放进去了。g下面可以直接访问到的属性和方法就是在g.mathProps内的那些。然后加上g.m和g.MathProps。但通过g.m可以访问到Math下完整的属性和方法 没有上下文,不知道这个具体有什么用。偷懒?
zhtoad 2021-03-28
  • 打赏
  • 举报
回复
不是空的 map 吗

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧