js10---call方法总结

本文深入探讨JavaScript中对象的创建及方法调用机制,包括构造函数、原型链、call方法的应用等,通过具体示例帮助理解对象属性与方法的生命周期。
<html>
<body>
<script type="text/javascript">
function Obj(x, y){
    this.x = x ; 
    this.y = y ;
    this.say = function(){
        this.name = "aaa";//不是生成对象的属性
        gg = "gg";//不是生成对象的属性
    }
}

var o = new Obj(10,20);
alert(o.name);//undefined
alert(o.gg);//undefined

function p(){
    this.age = "age";
    alert("pppp");
}
p.call(o);//就这里一行代码o有p方法,语句执行完o就没有p方法了,属性一直还存在。
o.p();//o.p is not a function,o有p方法只有一次,上面语句执行完o就没有p方法了,属性还存在。
alert(o.age);//age,p.call(o)把函数类的属性加进对象o中


function p1(){
    this.sch = "sch";
    alert("p1");
}
o.p1();//o.p1 is not a function,不能这样加,只能通过call来动态加一次
alert(o.sch)

function Person(name,age){
    this.sch = "sch";
    alert("p1");
}
function New(f){
      var o = {};
      return function(){
          f.apply(o); //就这一行,o拥有了p方法,出了这一行就没有p方法了,但是o还是有p函数中定义的属性      
          return o;
      }
}
var new1 = New(Person)();  
new1.Person();//new1.Person is not a function,
alert(new1.sch);//sch
</script>
</body>
</html>

转载于:https://www.cnblogs.com/yaowen/p/6864700.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值