JavaScript 面向对象

命名空间namespace

"use strict"

var MYAPP = MYAPP || {} // 检查MYAPP是否已经被定义了

MYAPP.commonMethod = {
    regExForName: "", 
    regExForPhone: "",
    validateName: function(name){
        //
    }
}

标准内置对象

console.log 实际上不是 JavaScript 自带的

定义类 class

function Person(name){
    // alert("person instantiated")
    // 每一个对象实例有若干个属性.  (重要)
    // 为了正确的继承,属性应该被定义在类的原型属性 (函数)中。
    this.name = name
}

定义方法和属性

为定义一个方法, 需要将一个函数赋值给类的 prototype 属性

Person.prototype.sayhello = function() {
    console.log("hello, I'am " + this.name)
}
var person1 = new Person("drsky")
var person2 = new Person("su")
var helloFunction = person1.sayhello

// alert("person1's name is " + person1.name)

person1.sayhello() //注意属性和方法调用的方式不同
person2.sayhello()
helloFunction() // this --> window , 所以提示undefined或者在严格模式下报错

你可能感兴趣的:(JavaScript 面向对象)