js 求如何能拿到n的值

function abc(){
  n:1
}
var a = abc();

题意就是这样,说是少了个return,各位有什么解决方案?最终结果是拿到n的值

阅读 3.2k
7 个回答
function abc(){

  return {
    n:1
  }  
}
var a = abc();

console.log(a.n); // a.n == 1

这里的冒号并不是表示n的值是1.

JS中的冒号有4中作用:
1 三元操作符 flag?A:B
2 switch case语句中
3 对象直接量 {a:"A"}
4 标签语句 identifier: statement

楼主的function中明显是第四种用法。

不知道楼主是啥意思- -在function里面写对象的语法,试着写了一下,没报错,然后自己瞎鸡儿写了个方法 大家看看就好,别当真

(abc+'').split('n:')[1].split('}')[0]-0

abc转成字符串再正则匹配

abc.toString().match(/n:(.*)/)[1]

类似于Vue中获取data中的值。参考属性与方法
cjc_5791dfbb5383e 已经给出合理答案

function abc(){

  return {
    n:1
  }  
}
var a = abc();

console.log(a.n); // a.n == 1
function abc(){
    var n = 1;
    return n;
}
var a = abc();

一般来说是这样的。
至于lz的代码中,n:1的写法完全不能理解。
以及整个问题感觉都有点奇怪。

function abc(){
    this.n=1;
}

var a=new abc();
console.log('n',a.n)

为何会有这种需求,好奇怪

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题