js知识梳理2:对象属性的操作】的更多相关文章

1.属性的查询和设置 ①基本语法 这个简单,可以通过点(.)或方括号([])运算来获取属性的值,注意点运算符后的标识符不能是保留字,方括号内的表达式必须返回字符串或返回一个可以转换成字符串的值. var person = { name:'jaychou', height:172, sayName:function () { console.log(this.name); } }; console.log(person['name']); console.log(person.height); 往…
页面循环绑定(变量污染问题) var lis = document.querySelectorAll(".ul li") for ( var i = 0 ; i < lis.length ; i++ ) { // 绑定事件时,没有执行事件内部的逻辑体 lis[i].onclick = function () { console.log(i) # 变量污染导致 i 一直为 4 console.log( lis[i].innerText ) } } 解决变量污染问题 for ( va…
查询属性: 可以用 对象.属性 来查询属性和属性方法               或者                    对象[“属性”]  来查询属性和属性方法 演示代码: <script> var obj ={ username:"ziksang", age:22, addr:"北京", say:function(){ return "我的名字叫 "+this.username //解析this,此处的this是指向obj对象…
写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出. 1.函数声明和函数表达式 函数声明具有声明提前/声明提升的特性,这一点和变量的声明特性相似,执行代码之前会先读取函数声明和变量声明,意味着可以把函数声明放在调用它的语句后面,但变量声明肯定最好不要这样,因为常伴随undefined问题. 函数声明的函数名称和函数体都提前,而函数表达式只是变量声明…
写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出. 1.执行环境 执行环境简称"环境",定义了变量或函数有权访问的其他数据.每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中. 全局执行环境是最外围的一个执行环境.在Web浏览器中,全局执行环境被认为是window对象,因此所有全局变量和函数都是作为wi…
写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出. 1.原型链 将原型链作为实现继承的方法,基本思想就是利用原型让一个引用类型继承另一个引用类型的属性和方法: function SuperType() { this.property = true; } SuperType.prototype.getSuperValue = function ()…
写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出. 起因 Object构造函数.对象字面量.Object.creat都可以用来创建单个对象,但有明显缺点:使用同一个接口创建很多对象,会产生大量的重复代码.所以才开始了创建对象的模式的探索. 检测对象的类 3种常见的检测任意对象的类的技术:instanceof运算符.constructor属性.构造…
引子 在上一篇(原来JS是这样的 (2))刚发布的时候就阅读了那篇文章的人可能会注意到那篇曾用过"JavaScript 中万物皆对象"的说法,而在随后我发现错误后立即更新改掉了这个错误的说法.另外上一篇实质上整篇都在描述 this 到底在什么情况下会绑定到哪个对象上,看上去 JavaScript 中的对象概念的确很容易让人困惑.再看下面一个例子: var strPrimitive = "I'm mamacat"; typeof strPrimitive; // &q…
js中对象属性可以动态添加和删除.删除对象属性用delete关键字. function obj(){ } var oo = new obj(); oo.a = "a"; oo.b = "b"; oo.a; //输出a oo.b; //输出b delete oo.a; oo.a; //输出undefined 在js中对象的属性以键值对的方式来体现,且(在遍历时)无序.js中属性名(也就是key)可以用点来访问(或赋值),也可以用中括号key值来访问(或赋值)(用中括号…
对象进行属性赋值操作时,其执行逻辑如下所示: 1. 当前对象中是否有该属性?有,进行赋值操作:没有,进行下一步判断. 2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值:有,进行下一步判断. 3. 原型链中该属性是否允许操作?是,在当前对象上创建同名属性,并赋值:否,属性赋值失败. 无论是属性赋值还是新建属性,都是在当前对象上进行的,不会修改原型链!第三种情况下,新建的属性将会覆盖对象从原型链继承来的同名属性.…