您的位置:首页 > 移动开发 > Objective-C

The usage of the Javascript method call and apply(what is the new and object.create difference.)(What does call(null) mean?)

2013-04-13 16:34 746 查看
firstly please review a code sample below .

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script  type="text/javascript">
/**/
$(function(){
var baseObj=function(){
this.firstname="joe";
this.lastname="wang";

};

var childObj=function(){
this.firstname="wq";
};

var b= new baseObj();
var c = new childObj();
baseObj.call(c);
alert(c.firstname);

});

</script>
</head>
<body>

</body>
</html>


 

the output is "joe" instead of the "wq".

so, found the mystery the call ?

Another case need to be mentioned here , the firstArg of call could be null.

As the MDN explained.


thisArg

The value of this provided for the call to fun. Note that this may not be the actual value seen by the method: if the method is a function in non-strict mode code, null and undefined will be replaced with the global object, and primitive values will be boxed.


Simply put it by a little code.

<script>'use strict'function fun(){
alert(this);}
fun.call(null);</script>


  

In the strict mode ,this is null. But in the not strict mode . this is window or global object.

see also:
http://stackoverflow.com/questions/4166616/understanding-the-difference-between-object-create-and-new-somefunction-in-j
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐