javascript - 为什么Klass构造函数要调用apply方法
伊谢尔伦
伊谢尔伦 2017-04-11 12:43:47
[JavaScript讨论组]
var Class = function(){  
    var klass = function(){    
        this.init.apply(this, arguments);  
    };  
    klass.prototype.init = function(){};  
    return klass;
};
var Person = new Class;
Person.prototype.init = function(){  // 基于Person的实例做初始化};
// 用法:
var person = new Person

为什么Klass构造函数要调用apply方法
实例化Klass的时候this.init方法的this不就是指向person,为什么还要调用apply,

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
PHP中文网

就你的目前的类结果看似没有必要,把apply去掉,改成如果下

var Class = function(){  
    var klass = function(){    
        this.init(); 
    };  
    klass.prototype.init = function(){};  
    return klass;
};
var Person = new Class;
Person.prototype.init = function(name,age){
    this.name=name;
    this.age=age;
}
var person=new Person("petty",30);
console.log(person.name);//undefined 而不是 petty

this.init.apply(this, arguments);作用将传入构造函数的实际参数传入init方法中调用,执行你期望的初始化工作

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号