js 对象与json的区别和this 指向问题

构造函数。用来被new关键字调用的函数,这个函数返回指定属性的对象。
用new关键字来调用函数
new是是一个操作符,使用new操作符调用函数的时候,此时将会发生4个事情:
(1)创建一个空对象
(2)把函数内部的this指向这个空对象
(3)将顺序函数执行里面的语句
(4)返回这个对象
function fun(){
name : "小花" ,
age : 18 ,
sex : "女",
}
var xiaoming = new fun();
console.log(xiaoming);
//fun {name: "小花", age: 18, sex: "女"}
javascript基础之对象
对象只是带有属性和方法的特殊数据类型
javaScript 有内置对象比如 String、Date、Array 等等。
1:用字面量的方式创建,使用{}当做界定符号,里面用k-v对儿罗列所有属性
var obj = {
name : "小花" ,
age : 18 ,
sex : "女",
sayHello : function(){
console.log("我是" + this.name);
}
}
对象就是属性的无序集合
2:访问对象的属性
objectName.propertyName
objectName["propertyName"]
访问对象的方法
objectName.methodName()
var obj = {
name : "小花" ,
age : 18 ,
sex : "女",
sayHello : function(){
console.log("我是" + this.name);
}
}
console.log(obj.name);
console.log(obj[‘name‘]);
console.log(obj.sayHello);
console.log(obj[‘sayHello‘]);
console.log(obj.sayHello());
//小花
//小花
//函数
//函数
//我是小花
3:对象的字面量和JSON的关系
JSON没有声明变量这一说(JSON中没有变量的概念)
JSON末尾没有分号{}后面
JSON要求所有的键必须有双引号(单引号不行),而对象字面量不要求(当键的名字不符合标识符名字的时候必须加上双引号,英语字母、数字、_、$ ,不以数字开头)。
4:this
关键字
指向的是调用函数的那个对象
和调用有关和定义无关
(1)当用()调用的时候,指向的是window
function myfunction(){
console.log(this);
}
myfunction();
//Window {external: Object, chrome: Object, document: document, _ASYNC_START: 1500782356654, _chrome_37_fix: undefined…}
(2)dom元素事件处理程序的时候,指向的是dom对象
function myfunction(){
console.log(this);
}
div.onclick=myfunction;
//div
(3)当函数被setInterval、setTimeout调用的时候,函数里面的this是window对象
setInterval(myfunction,2000);
(4)当函数被当做某个对象属性被调用的时候,此时这个函数里面的this指的是这个对象
var obj = {
name : "小花" ,
age : 18 ,
sex : "女",
sayHello : function(){
console.log("我是" + this.name);
}
}
obj.sayHello();
(5)call和apply方法可以任意设置函数里面的this
函数.call(对象);
函数.apply(对象);
函数立即执行,且函数内部的this指向对象。
区别是传参:
sum.call(obj,1,2,3); // call必须要用逗号罗列所有参数
sum.apply(obj , [1,2,3]); // apply用数组罗列所有参数
(6)new 调用的函数。
this指的是系统内部创建的新对象

时间: 2024-09-28 16:09:37

js 对象与json的区别和this 指向问题的相关文章

js对象和json的区别

他们两个没有什么关联只不过可以相互转换而已,就像json可以转化为java对象一样 注意:json只有字符串形式(就是我们常说的json字符串:key/value值和数组形式的字符串),没有什么json对象(当json字符串转换为java对象是就是java对象,当json字符串被转换为js对象时,就是js对象). json字符串的格式和js的格式很相似而已. json可以说与XML文件是如出一辙的,只不过要比XML文件轻便. 以上为自己总结,如有不对请指教,谢谢

JSON(二)——JavaScript中js对象与JSON格式字符串的相互转换

首先我们来看一下js中JSON格式的字符串 var JSONStr1 = "{\"name\" : \"张三\"}"; 注意以下的写法不是js中JSON格式的字符串,它只是一个js的字符串. var JSONStr2 = "{'name' : '张三'}"; 我们看JSON语法中对于字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义.一个字符(character)即一个单独的字符串(characte

【JS对象、JSON字符串】之间的相互转换

在Firefox,chrome,opera,safari,ie9,ie8等浏览器直接可以用JSON对象的stringify()和parse()方法. 1.JSON.stringify(obj)将JS对象转为JSON字符串. //JS对象 var obj={"name":"tom","sex":"男","age":"24"}; //JS对象转化为JSON字符串 var jsonString

js对象和json对象的区别

1.JS是一种脚本语言,你所谓的对象,其实还只是处在源码阶段,当这段符合语法的文本被脚本引擎解释之后,在内存中才会产生对象,至于是否符合语法,取决于脚本引擎. 2.JSON不是一种语言,它仅仅是一种数据的表达方式,从某种程度上来讲,JSON跟XML没有什么区别. 对于JS的字面量来说,这段文本仅仅是代码的一部分,相当于指令,而JSON文本,其本身就表示了数据.二者相同的地方是,看起来都是数据,而且恰巧又都是文本:不同的地方在于,JS字面量的文本是被脚本引擎直接解析的,而JSON的文本,如果要转化

node.js JS对象和JSON字符串之间的转换

JSON.stringify(obj)将JS对象转为字符串. var json = { aa: ['sdddssd'],   bb: [ '892394829342394792399', '23894723984729374932874' ],   cc: ['11111111111111'] } => var string = JSON.stringify(json) string: {"aa":["sdddssd"],"bb":[&qu

JS对象与json字符串格式

1 <head> 2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 3 <title></title> 4 <script type="text/javascript"> 5 var obj = new Object(); 6 obj.Name = "八戒" 7 obj.Ag

javascript学习之js对象和json对象(obj=JSON.parse(stu))

js对象是键值对的容器, 一定要了解逗号和分号在js里面的用途 如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量./w3cschool/i 是一个正则表达式.w3cschool 是一个模式 (用于检索).i 是一个修饰符 (搜索不区分大小写).使用正则表达式搜索 "w3cschool" 字符串,且不区分大小写:var str = "Visit w3cschool";var n = str.search(/w3cschool/i); 获取指定id

js 对象与函数的区别

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 7 <script type="text/javascript"> 8 //第一种定义方式 9 function fn1(){ 10 alert("fn1"); /

js对象与json格式的转换

目前的项目数据交互几乎都用JQuery,所以处理流程是:前端页面数据->JS对象->jQuery提交->python处理,另外一种就是倒过来.python肯定不能直接处理JS对象数据,所以要把JS对象转换成为python能处理的一种数据格式(通常是字典dict),同样,python取数据反馈到前端也要把字典数据转换成JS能处理的对象,这个中间转换数据格式通常就是JSON. 一.JS对象转换成为JSON 流程:读取前端页面数据,组装成为JS对象,并通过jQuery的$.post()方法传递