今天在学习JS的原型时,遇到了一个很郁闷的问题,请看代码:function Fn(a, b) { this.a = a this.b = b}/* 直接给函数对象添加属性 */Fn.x = 'test'Fn.hello = function () { console.log('hello')}/* 给构造函数添加属性 */Fn.prototype.constructor.what = 'what?'Fn.prototype.constructor.wtf = function () { console.log('wtf')}/* 给函数对象的原型对象添加属性 */Fn.prototype.say = function () { console.log('say')}var f = new Fn('is a', function () { console.log('is b')})console.log(Fn.x); //testconsole.log(Fn.hello()); //helloconsole.log(Fn.a)console.log(f.a)console.log(Fn.what)console.log(Fn.wtf())console.log(Fn.b)console.log(f.b())console.log(Fn.say)console.log(f.say())输出的结果令人费解:有些 undefined 是怎么出来的呢?
添加回答
举报
0/150
提交
取消