理解 JavaScript 构造函数与对象
先放上构造函数实例化的代码:
var cls = function() { this.val = 'cls 的值'; }; var clsobj = new cls(); console.log(clsobj.value);
通过 new 关键字, cls() 由普通的函数成了构造函数。this 指向了《JavaScript高级程序设计(第2版)》第6章“构造函数模式”一节中所说:在调用构造函数时创建的那个对象。
来看看对象字面量写法的代码:
var obj = { val: 'obj 的值' }; console.log(obj.val);
在构造函数与对象中,this 的指向是不一样的。在《JavaScript高级程序设计(第2版)》第18章“函数绑定”一节中,this指向的 msg 为 undefined。
var handler = { msg: '事件的处理函数', handleClick: function(){ console.log(this.msg); } }; var elm = document.getElementById('container-1'); elm.onclick = handler.handleClick;
JS事件的内容请见《JS中的事件处理》。
(完)