JS的函数和对象你们有谁懂?

baidu_29141315 2015-06-27 02:20:01
<script>

function aaa(a,b){
var $c = 1;
this.c = function(){
alert($c);
}
}
</script>

aaa.$c = 999;
var $a = new aaa();
$a.c();

为什么结果是1 而不是 999 呢?
aaa.$c 到底代表什么,不是函数的吗? 为什么修改了也没有;
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
香蕉猪 2015-06-29
  • 打赏
  • 举报
回复


function aaa(a,b){
    var $c   = 1;
    this.c   = function(){
        alert($c);
    }
}
alert(aaa.$c);   //结果是1;     wrong:this is "undefined" not 1
aaa.$c = 999;    //这里我故意写的是函数名称; 我想了解: aaa既然是function(obj),那么为什么改变属性之后, new没有继承呢?      wrong:aaa() is the function ,what's aaa?
 
var $a = new aaa();  //这里是NEW;
$a.c();              //结果为什么不是999 
baidu_29141315 2015-06-28
  • 打赏
  • 举报
回复
[code=javascript]<script>
function aaa(a,b){
	var $c   = 1;
	this.c   = function(){
		alert($c);
	}
}
alert(aaa.$c);   //结果是1;
aaa.$c = 999;    //这里我故意写的是函数名称; 我想了解: aaa既然是function(obj),那么为什么改变属性之后, new没有继承呢?

var $a = new aaa();  //这里是NEW;
$a.c();              //结果为什么不是999  

</script>
aaa.$c = 999; 我想了解: aaa既然是function(obj),那么为什么改变属性之后, new没有继承呢?[/code]
baidu_29141315 2015-06-28
  • 打赏
  • 举报
回复
引用 2 楼 gy127132060 的回复:
我是在研究函数的原理,我故意写 aaa.$c=999, 而非对象; 因为aaa代表的函数本质上就是个对象,其类型为funciton;在一个对象中填加成员属性是没有问题的,即使他是一个function对象; 我没有搞明白的是aa ; 而 $a是实例化; alert($a.$c); $a.c(); //调用aaa中c方法,aaa中内部定义$c为1 [quote=引用 2 楼 gy127132060 的回复:] 不想解释,,,楼主自己运行看。。。

function aaa(){
  var $c   = 1;
  this.c   = function(){
    alert($c);
  }
}

  var $a = new aaa();
  $a.$c = 999;
  alert($a.$c);
  $a.c(); //调用aaa中c方法,aaa中内部定义$c为1
引用 2 楼 gy127132060 的回复:
不想解释,,,楼主自己运行看。。。

function aaa(){
  var $c   = 1;
  this.c   = function(){
    alert($c);
  }
}

  var $a = new aaa();
  $a.$c = 999;
  alert($a.$c);
  $a.c(); //调用aaa中c方法,aaa中内部定义$c为1
我是在研究函数的原理,我故意写 aaa.$c=999, 而非对象; 因为aaa代表的函数本质上就是个对象,其类型为funciton;在一个对象中填加成员属性是没有问题的,即使他是一个function对象; 我没有搞明白的是aaa 这个对象的本质是什么,也就是函数的本质是什么,如果函数是对象,结果不合理;如果不是对象,aaa确实可用
hch126163 2015-06-27
  • 打赏
  • 举报
回复
function aaa(a,b){ this.$c = 1; this.c = function(){ alert(this.$c); } } </script> var $a = new aaa(); $a.$c = 999; $a.c();
香蕉猪 2015-06-27
  • 打赏
  • 举报
回复
不想解释,,,楼主自己运行看。。。

function aaa(){
  var $c   = 1;
  this.c   = function(){
    alert($c);
  }
}

  var $a = new aaa();
  $a.$c = 999;
  alert($a.$c);
  $a.c(); //调用aaa中c方法,aaa中内部定义$c为1

87,955

社区成员

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

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