JavaScript 对象基础
对象是一个包含相关数据和方法的集合(通常由一些变量和函数组成,我们称之为对象里面的属性和方法)
var objectName = {
member1Name : member1Value,
member2Name : member2Value,
member3Name : member3Value
}
点表示法
在上面的例子中,你使用了点表示法(dot notation)来访问对象的属性和方法。
对象的名字表现为一个命名空间(namespace),它必须写在第一位——当你想访问对象内部的属性或方法时,
然后是一个点(.),紧接着是你想要访问的项目,标识可以是简单属性的名字(name),或者是数组属性的一个子元素,又或者是对象的方法调用。如下所示:
person.age
person.interests[1]
person.bio()
子命名空间
可以用一个对象来做另一个对象成员的值。
name : ['Bob', 'Smith'],
改成
name : {
first : 'Bob',
last : 'Smith'
},
括号表示法
person['age']
person['name']['first']
"this"的含义
关键字"this"指向了当前代码运行时的对象( 原文:the current object the code is being written inside )——这里即指person对象,
<script>
//创建函数的三中方式
//1。函数声明使用 function
function fun(num1,num2) {
return num1 + num2
}
console.log(fun(1,2));
//2. 函数表达式
var fname = function (num1,num2) {
return num1 + num2
}
console.log(fname(3,4));
//3. 函数对象方式
var oname = new Function('num1', 'num2','return num1 + num2');
console.log(oname(4,5));
</script>
<script>
//创建对象的三种方式
//1.字面量创建
var obj = { //字面量对象方法
name: 'jooo',
age: 15,
hello: function () {
console.log('hello');
}
};
//2.工厂模式创建对象
function createStudent(name, age, sex) {
var Student = new Object();
Student.name = name;
Student.age = age;
Student.sex = sex;
Student.sayHello = function () {
console.log("hello, 我是工厂模式创建的对象中的方法");
}
return Student;
}
var student2 = createStudent('小红', 19, 'female');
//3. 利用构造函数创建对象
function createStudent(name, age, sex) {
var Student = new Object();
Student.name = name;
Student.age = age;
Student.sex = sex;
Student.sayHello = function () {
console.log("hello, 我是工厂模式创建的对象中的方法");
}
}
var st = new createStudent('jo',44,'female');
//或者
var person1 = new Object({
name : 'Chris',
age : 38,
greeting : function() {
alert('Hi! I\'m ' + this.name + '.');
}
});
//4. 使用 create 方式,person1 是一个对象
var person2 = Object.create(person1);
</script>